I feel this same thing happens at almost all companies I've worked for. I had to leave one of my favorite jobs at a company doing really well because I was never going to get to work on what I wanted, in the group I wanted...
It's amazing to me how much money companies can waste hiring new people - albeit a not unwelcome redistribution of profit from shareholders to developers - yet once you're hired you're stuck in that role unless your manager signs off irregardless of other internal opportunities.
I wonder if having a more liberalized internal labour market wouldn't be beneficial; it's destructive in so far that being undermined by more popular projects keeps siphoning off your best talent, but if the alternative is "quit and find another job" it strikes me that keeping that person within the organization may be more beneficial overall.