I've long argued that the entire Linux mentality of distros and packages is broken, and one of the huge reasons why it'll never be widely adopted in the desktop.
Linking versions of trivial software like photo organizers or music players--or even more important software like browsers--to a specific version of the entire system makes it impossible to ever have a stable, yet reasonably up-to-date system. For example, what if you don't want Unity but do want Firefox 7? Or do want updated indicator applets, but don't want broken wifi because of a driver bug in 11.10? (Personal experience, that one.) Your only option is adding PPAs, hoping there's a .deb, or compiling from source, all of which are beyond an average desktop user. And even if you do that, if you wait long enough the distro will have advanced so far away from your personal setup that upgrading other things will become a nightmare.
Linux should move away from the monolithic distro paradigm and towards a stable, rarely changing core of essentials like compositing, video, wifi, hibernate, etc., with optional highly updatable packages of "smaller" software like Banshee, Firefox, etc. That way you can have the best of both worlds: stable core software that the user never sees, and individually updated smaller software that the user wants to be fresh.
Rolling release isn't quite the same, because you still get frequent updates to "core" software. For example I hear from many Arch users that it's great, but it breaks even more frequently than Ubuntu. (Though I've never personally used Arch.) It seems that Linux today is either ancient, stable, and frozen in a bygone era like Debian Stable, or fresh but frequently broken, like Debian Sid (or Arch). There's no inbetween.
And saying "my system works flawlessly, except that time when I had to Google how to modprobe my temporarily broken wifi, or when I had to boot into rescue mode to edit GRUB" doesn't count. You can't have a flawless system with "except".
I'm suggesting that Linux needs something inbetween rolling release and milestone release. Something that keeps invisible core software essential to basic system functionality like wifi and video on stable milestones, but has smaller user-facing software always up-to-date. I don't know if something like that is possible given the current state of Linux package management. But it's clear to me that both rolling and milestone based distros either 1) break too frequently for mere mortals, or 2) cram unwanted changes down my throat for the sake of just one or two new packages I want, or 3) have user-facing software older than my grandma.
Windows has managed to do it. You can still run Firefox 7 on Windows XP, and I can guarantee that upgrading to FF7 on XP won't suddenly change your desktop to a shoddy OSX clone behind your back or break your wifi.
Linking versions of trivial software like photo organizers or music players--or even more important software like browsers--to a specific version of the entire system makes it impossible to ever have a stable, yet reasonably up-to-date system. For example, what if you don't want Unity but do want Firefox 7? Or do want updated indicator applets, but don't want broken wifi because of a driver bug in 11.10? (Personal experience, that one.) Your only option is adding PPAs, hoping there's a .deb, or compiling from source, all of which are beyond an average desktop user. And even if you do that, if you wait long enough the distro will have advanced so far away from your personal setup that upgrading other things will become a nightmare.
Linux should move away from the monolithic distro paradigm and towards a stable, rarely changing core of essentials like compositing, video, wifi, hibernate, etc., with optional highly updatable packages of "smaller" software like Banshee, Firefox, etc. That way you can have the best of both worlds: stable core software that the user never sees, and individually updated smaller software that the user wants to be fresh.