I think it depends on how the game mechanics work. Take FF 10 for example. In that game, you had the capability, and the necessity, the swap out people on the fly, to deal with the threat at the time. This means that at any time, your entire team might be utilized for the fight. But, perhaps not everyone has time to actually do an action, to get credit for xp. So, you have to arbitrarily force them in, just to do 1 action, so they can get some XP. So that they don't get left behind in the progression. I did this, and it was annoying as fuck.
Personally, I have zero issue with the idea that they level up with you. In games like the Dragon Age series, or Mass Effect, the understanding, is that the entire crew is coming with you on these missions (or at least most missions). They are there for the cutscenes, but somehow weren't there for the combat. But, when you load them into your team after a break, they've got levels to spend. I find this WAY more practical.
The game gives me a huge list of characters, and then forces me to shave that list down to a smaller list to use. And then, it might, just to fuck with me, decide to take those people hostage, and now I've got to use my B-List heroes in fights that are tough for my A-Team? No thank you. That's a level of annoyance and frustration that I don't need in my entertainment.
Let them stay on par with the rest of the group, so I can switch out as I need.