I think you have to go even further and consider each Linux distribution to be a separate operating system which application developers must port to, test, and support. And there's still the problem of apps that are included in some distributions but not in others.
Reminds me of when I first started out as a developer. Every version of Unix was different and even on MS-DOS you had dependency problems with code compiled using different manufacturs' C compilers. After being molly-coddled in the Windows world for several years where these problems hardly seem to exist anymore, this is the one aspect of Linux that really puts me off spending any of my own time on that OS.