I work for AppleCare and want to set the record straight on a couple things. First off, we will NEVER EVER charge anyone $19 for an iMessage Deactivation. This is a mandatory exception for anyone and if the advisor quoted in this article isn't aware of that then I'm pretty sure they don't work for AppleCare (a ton of people work for 3rd party call centers at the moment).
Secondly, the issue at hand is a result of how iMessage was designed. It's not that engineering has "no clue" on how to fix it, it's that in doing so, the entire schema would have to be redesigned which would undoubtably cause issues for the other 99% of people who aren't having this issue. The reason this is happening is because in iOS 6, iMessage associated your phone number with your Apple ID. That way, you could get messages on an iPhone but also on devices ONLY signed in with your Apple ID such as your iPad or Mac. Now when an iPhone user goes to start a text message thread with someone, their phone queries a server to see if that number is still a valid address for iMessages to be sent. If so, it turns blue. If not, it turns green and goes through as SMS. Now when you switch from an iPhone and DONT sign out of iMessage first, the server still thinks your number is a valid address for iMessages to be sent and thus, anyone with an iPhone is unable to reach you on an android because they would need to send the message as an SMS to do so.
This is fixed pretty simply on our end when someone calls AppleCare. We basically pull up the account and revoke the certificates for that phone number. This means that when someone goes to start a message thread and it queries that server, the server will return an invalid address response and the message will revert to SMS. Now this definitely fixes this "bug" however it might take up to 24 hours for some iPhone users to be able to reach the person because iOS doesn't always check that server after a message thread has begun. That's why we tell people, if they absolutely need an immediate fix, to tell those trying to reach them to delete the MESSAGE THREAD(not contact bc that makes absolutely no sense) and start a new one since every time you start a new thread, the phone WILL query that sever and realize it's either a valid address or it isn't.
This isn't a flaw, it's just how the system was designed. Could it be better? Absolutely! However, making claims that it's apple's attempt to "punish" those who switch to android is ludicrous. And the fact that the "advisor" allegedly stated that the customer should tell everyone to delete their contact listing a re-add it just tells me that this journalist isn't getting reliable sources. The call center employees might not know the technical reasons behind this issue, but they certainly follow the same procedure we do to resolve it. They would be fired pretty quickly otherwise. Hopefully this clarifies things a little bit.