Sometimes you need someone who knows every detail of whatever system. It can really pay off and you are willing to throw money and titles to get someone good. It doesn't mean they are a great senior dev, but if you need that person, then you need that person.
I've done embedded work, application work and now I'm doing web development. I often seen the "5 year senior wannabes". Hell, after 5 years of work, I was one of them! I refer to my old self as a "hotshot ass hole programmer". They are common.
These days, I think a junior developer is someone who needs assistance to get their job done. An intermediate developer is one who can get everything done without assistance (although they may still benefit from assistance!). A senior developer is someone who can bring up everybody else's level -- getting assistance in this seems to be a critical prerequisite for success).
I tell this to people on my team, but again it is hard to judge your own effectiveness. There is a lot of hubris. I know -- been there, done that, slept in the t-shirt for over 20 years. Thinking about it, I think the key piece of experience that can help you be a good senior developer is to watch a system that you built collapse under its own weight. Coming to grips with the idea that all of those things you really believed would definitely lead to wonderful software were just... wrong (and it doesn't matter what it was that you believed here).