The problem with that is the PM system is used for something it's not really coded for. It's not coded to have everyone get a message that only exists once in the database, so that's some major alterations to the PM system.

When we try to make things do what they weren't meant to do it means either rewriting large chunks of the code or ending up with a feature that doesn't necessarily work as efficiently as it should. In this case, it would need to check multiple tables (for announcement type PMs), need to know which table to read from depending on the PM type (regular or announcement). Need to keep track of who read and did not read it, etc.

It also leads to confusion. The initial welcome PM is a non-reply PM, but I looked at the DB recently to see how many new users reply to it anyways, you'd be surprised how many did. When people receive a PM, they naturally think they can reply to it.