Because in real life you have even more biodiversity in the same place than a game. I see one kind of bird in the morning, at noon and owls at night in my own home.
You have a point, but with the 12 encounter% slots it's kind of hard to mimic that diversity.
I can also walk out onto my balcony and count 7 different species in my neighborhood without trying, not including bushes, vines and weeds. That doesn't mean that loading every route with Grass types is the way to go.
Yes, IRL has more biodiversity than Pokemon - but there are still species which are more prominent in or associated with certain habitats than others.
What the game does is to give the player options to choose. If you just put a pidgey or taillow in your route, there is no way I will choose any of them. Why? Because I already did play with them in other games. Having lots of options for myself is being able to choose, the way I play, official games and games with less options are just sad to play because I don't have options to what to choose (always some new pokemon) over the same ones over and over again.
It's not removing your choice, it's just forcing you to explore.
Making you go to an early game forest fo find Hoothoot or wait for the first rocky route to find Spearow doesn't remove your choice to use them (unless introduced mid or late game past their utility), it just gives reason to keep searching the grass and spend more time on routes beyond DO NEXT PLOT! and BATTLE NEXT TRAINER!
Running with the Ghost type example, having 3 main locations with 2-3 accessory locations makes me want to explore more than just "wow I found the Ghost type spot".
Instead of just one spooky graveyard or dark cave you could have like:
- a haunted house with Ghastly, Shuppet and Litwick
- a boneyard style location featuring Duskull and a chance of Spiritomb, along with non-ghosts like Cubone and Murkrow
- a foggy, haunted swamp/moor for Drifloon and Misdreavous, with some Ghastly as well
And then a few others like Sableye being found in a gem mine, and Yamask being found in an ancient ruin with Baltoy and Unown.
This is just me spit balling inside a few minutes, if you're an actual dev/romhacker you could probably think of way more with the time you have.
Tying diversity of Pokemon to diversity of locations doesn't remove choice.
It just encourages exploration.
And IMO it helps with replay value too, because I'm more likely to replay romhacks (Vega Minus, Blazed Glazed) where I realize later what options I would have had.
This idea that the dev will choose what team you will use by limiting their options will just create problems like THOSE teams that people used in pokemon platinum or GSC (starter + Ampharos + gyarados + whatever you want)
That's not my point or implication at all?