I think the confusion comes what most consider a “revision” and what Microsoft does:
-
Build: A difference in build number represents a recompilation of the same source. This would be appropriate because of processor, platform, or compiler changes.
-
Revision: Assemblies with the same name, major, and minor version numbers but different revisions are intended to be fully interchangeable. This would be appropriate to fix a security hole in a previously released assembly.
The security fix angle, probably much more common for them, seems to be a decent reason to have it in last place, as the “most-minor” change.