Yeah. Everybody in 'linux land' is using the just about the same version of the same software as everybody else, but can't get along with each other enough to actually work out the niggling technical details of how they use the software in order to not make it hell for application developers.
The solution that has come up so far is to put a HUGE amount of effort in repackaging the same software a dozen different times to make up for those relatively tiny differences.
Meanwhile people that actually are trying to move things forward are always met with derision and are lambasted for not following a imaginary and continuously shifting unix methodology/ideology that is used to justify all sorts of weirdness in the system. The flip side of the coin is full of people whose main approach to deciding system design is simply to not decide anything at all and make users and developers deal with a thousand different possible combinations of this-or-that.
It is not so much a monoculture as a monodisfunction.
But in the end I still prefer it to the alternatives.