"Open" Solaris was never very open. The signoff process for code contributions was so onerous and involved so many Sun/Oracle employees signing off on any little commit, that there were actually more commits landing in the Linux kernel alone in most given weeks than during an entire year of "Open" Solaris.
As for stable kernel module ABI, it just means more security problems and bugs that can't be reliably fixed and you have to use several different compilers to compile your kernel. It's why the attack area on Windows is massive. Every time they make a Windows release, there's another driver model that is frozen in time from the last version of Windows that can't be reliably fixed and requires Microsoft to keep around ancient compilers for just those sections of the kernel.
Binary kernel module compatibility only matters when you have very few drivers available as source code which can simply be recompiled along with the rest of the kernel. Since the Solaris and BSD people don't actually give a shit about proprietary kernel modules, and in fact encourage this, I can see why having binary kernel module ABI compatibility is a goal for them. Since Linux is done more openly and has the vast majority of device drivers available as source, it would just be an undue maintenance nightmare and encourage bad behavior of device makers.
Solaris is traditionally proprietary. The x86 version is crap. The problems it brings are from being closed source and tied heavily with Sun hardware for many years. It's unusable on most PC hardware because it was never a major concern with the developers.