Maybe, but I think it's alright this way. Also not having to make changes to every single character saves space. I don't know how much space could be saved, but I think it could be put to better use. --- :/
If you create, say, 20 generic hairstyles, 10 generic hats and 20 generic accessories, as well as pallet swaps for outfits and whatnot, you could have immense variety in trainers.
It also wouldn't hurt to create a set of battle animations, maybe 10 or so of them.
These kinds of assets in 3D can be shared across a wide variety of models if they all would work on the same skeletal structure (and since they're people, they totally would).
So you could have it so that no two NPCs would be EXACTLY the same down to every detail, even if you got several that looked similar they'd be pretty far apart so you'd be unlikely to notice it. --- Do not censor my voice, or soften my unit. They must remain loud and rigid, respectively.
If trainers were based on a central model that could alter parts of the clothing, then this would be the least-memory eating way to do it.
However, knowing Gamefreak, they would probably have types of trainer dress the same but alter coloring for maybe one or two pieces of model clothing. So unless it really matters to you that every single bug catcher have a different color hat, I think it would be best to allocate resources elsewhere.