Sounds like you haven't been out in the work-world long enough to become adequately jaded. I have, so, what follows will likely sound far more bleak than it's actually intended. At any rate...
What I've found is that, the more places you work, customers you work for, teams you work with, etc., the more you find that each work-context is "broken" in some form or another. This observation is at least doubly-acute if you're a high performer. Further, if you're a high-performer, "broken" frequently takes forms similar to what you've described in your post – that the reward for being good at what you do is that everyone wants you to be their crutch.
Occasionally you'll find teams that are full of high-performers. Enjoy being on them while you can because they tend not to last: most companies can't afford to retain an "all rockstar" staff. And by "afford", I mean more than just monetary terms. Some companies have deep pockets but not necessarily deep reservoirs of interesting problems to solve. So, inevitably, people move on.
Take care to remember those good times. They'll help you survive the not-so-good times by letting you know, if the current circumstances aren't great, you might yet find another circumstance that captures some of the essence of what you enjoyed.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.