Why can't apple provide options for the gun icon like they do with skin color. Make the water gun default and let the consumer choose if they want to change it. Simple solution.
The skin colours are part of the font and the font specification is dictated by Unicode. The reason why the skin colours are there is because they are included in the font itself. Apple cannot just add a second image for this gun without modifying how the font works. They would be making a platform-specific workaround which Unicode seeks to avoid. Moreover, you cannot currently control how an emoji looks when you receive it. When someone sends you an emoji with a darker skin colour, you cannot override this with your own preference. The same would be true for the gun. You would only see your preference in the emoji picker and when you send it. There would have to be a specific workaround that makes iOS still send the proper emoji code to the recipient, so that they see it as a gun. This would mean that your text has to be changed before it is sent. In other words, it would be a very messy solution.
My guess is that the reason why Apple changed this gun despite the Unicode specification is to put pressure upon the Consortium to change the specification. They don’t agree with the standard and are probably unable to convince the others change it, so they do it unilaterally. This is unfortunately what Apple seems to be doing far too often lately. They are also very choosy so when when it comes to web standards they support.
However, Apple and Microsoft already successfully opposed the inclusion of a rifle emoji. Moreover, Microsoft used a toy gun for this particular emoji. They only changed it in the Anniversary Update that was released a few days ago. Microsoft might be inclined to reverse that change.
This is how Microsoft’s versions looked: