Thank you Axel. As usual, your responses are really helpful. But I think your answer still misses my main point, which is that all a person has to do to get a clean release is to use the 201605GA release.
I think there are three sources of confusion:
People think that the Content Repository 5.1.g (shipped in 201605 GA) needs to match the Share 5.1.g (shipped in 201606 EA), but they don't. Share's version number is not directly tied to the repository. As stated in the 201606 EA release notes, you are correct that there are some useful bug fixes if a person chooses to deploy Share 5.1.g with the Repository 5.1.g, but it isn't incorrect to use the 201605 GA release out-of-the-box.
The version numbers simply reflect how many releases were done during that version's lifecycle, for example "g" is the seventh release of the 5.1 Share. Sometimes a component of Alfresco Community Edition doesn't change between monthly releases, and so we include the same artifact in multiple releases. This is why the versions get out of step. People don't seem concerned when this happens with the SDK, RM, or Search, but because Share and the Repository used to be released in lock-step it causes some confusion.
Share reports in the UI it's version number, which people then think applies to the Content Repository. This is further confused because we still have the habit of referring to both Share and the Content Repository together as a "5.2 Release" when market our commercial products.
Thank you for giving me the opportunity to clarify how this works. Hopefully it helps others understand our thinking. We are open to suggestions for improvements.
Your explanations are fine for a casual user that should normally not care about the low-level, technical versions. But when someone asks regarding the technical versions I will focus my answer on these, and regard the GA/EA numbers as "marketing versions".
You are right, Share and Repository do not have to match - but if you want to have the latest of both (5.1.g) you have to do it manually. And 5.1.g was mentioned as the target version by the original poster. I did not intend to discourage to use any of the releases "as-is" - I just focused on the steps necessary to get a clean, pure 5.1.g setup, which is hindered by the fact that the org.alfresco:alfresco:war:5.1.g Maven artifact contains 5.2.a repository JARs, which is confusing - and frankly incorrect - because the version number of included share-services defines the version of a Repository artifact in this case. It would all be perfectly fine if that Maven artifact was tagged as the 201606EA instead of 5.1.g.