After staying a couple of days in a desert grinding up our starter pokémon we realised it was waaay too easy to catch overleveled pokémon. I mean, we could have just been lucky but by just using a couple lvl 15 pokémon we got multiple lvl 30s, which at the time seemed like no problem. But after migrating a bit we noticed that the objectively fastest way to level up was not to fight other pokemon (like in the games) but to catch pokémon that are about five levels above your own.
It might not seem like a big deal but this made us no longer care if we saw a pokémon we liked, or even our favourite, since the only thing that mattered was that they where a handfull of levels above our current highest leveled pokémon. in the endgame it didn't really matter. we still went legendary catching as one would expect to in level 100. But it almost felt like cheating.
We got to level 75 (I think) before we could start caring about the pokémon we cought. And then we were able to catch legendaries. This meant that the only time it was optimal to progress by leveling up was when we didn't care about what pokémon we had, since the legendaries where so much better. In our entire playthrough to level 100 we didn't evolve a single pokémon.
WHAT TO TAKE AWAY FROM THIS:
I think what you need to keep the game balanced is to 1: exclude the ability to catch any pokemon with a higher level than your current pokemon on the battlefield.
And to 2: make sure it is still very hard to catch evenly leveled pokémon since you then respect the pokémon you currently own a lot more as they are the most powerful available pokémon to you.
I love pixelmon. It combines two of the best media franchises into an excellent experience. Due to this i have an imense respect for all members of the team working on it, so I don't mean to put any pressure on them to implenet these restrictions, but I do think it is worth looking into.
-best regards, Kalle <3