Well, there are already trainers with specific items or other special attributes based on their classes, like scientists using X-items or the breeders in BW2 being rematchable because they want to keep training their young pokémon. Seems like a fairly reasonable progression to me!
Granted, for effects that are similar to items (e.g, "automatic leftovers"), it seems like it'd be simpler to implement by just giving the pokémon the item in question—rando trainers rarely use held items anyway, so unless you had plans for the nurse's pokémon to have both lefties and a sitrus berry or something, or it bugs you that the player might be able to use knock off to remove the item, just the lefties would probably do the trick. That, and how would you logically explain the nurse's pokémon magically healing themselves? Some kind of medicine they take before battle? The incredible effects of extreme healthy living? (Why aren't these things that the player's pokémon can do?) I'm not saying that there's no explanation for it—just that the explanation needs to be there.
That's something you'd have to keep in mind for all of these effects, really. Not necessarily some kind of in-depth physiological breakdown of the bird keepers' flight training regime that results in higher speed for their pidgeotto, but just a reason for each bonus to be in the game and some reason for the player not to be able to have it. It could even be something as simple/handwavy as there being, I dunno, "specialist badges" that give certain types certain stat boosts or other effects. Just like the older canon games (idk if Essentials does this) will raise your pokémon's attack or special defense if you have a certain badge or number of badges, maybe bug catchers who have passed the Ultimate Bug Catcher Test get a "bug badge" that raises their pokémon's speed. (And hey, maybe there's a way for the player to take this Ultimate Bug Catcher Test if they're willing to go mono-bug themselves for at least a little while...)
Probably also worth thinking about how you'd let the player know that these effects were a thing in-game. If a scientist uses an X-item, you see the item use message and it's clear what's going on. If the bird keeper's level 27 pidgeotto is faster than the player's charmeleon when they just beat a lass with a level 27 pidgeotto that was slower, that needs to be telegraphed somehow. Maybe it's announced by a toast pop-up when the battle starts, maybe you have a stat boost animation play, maybe you just do your best to make sure that the trainers' pre-battle dialogue hints at it ("My pidgeotto is faster than any you've faced before thanks to our special training!" etc., etc.)... just something else to think about as you're designing a feature like this.
So yeah, just a few thoughts that came to mind. Can't say I have a ton of interest in implementing something like this in my own work—although then again, I don't have much interest in making main-series-style Pokémon fangames in general—but if this were implemented logically and with all the obvious considerations for balance, I think I'd enjoy playing a game that included it.