Well, consider the following: Random Encounters work in a sense that they force the player to look for pokemon so that they can "catch them all". However, the problem with it is that tedium is combined with random chance. The best way to make searching for pokemon interesting is to have the players discover them through different ways in the overworld, and employ different strategies to catch them.
>Lower encounter rates are employed so that players can just cheese their way through the game if they aren't interested in completing the dex
>A few of the rarer grass encounters can also be found in the overworld, but with unique methods of finding them so that they can be easily discovered and caught for those who go looking for them.
>For example, say the player wants to catch a Parasect in a cave. They could try running around for a while, or they could learn from some in-game clues that they like to roam around in damp places at night. Then, the player can find a location inside the cave that would correspond with this hint (like an underground stream) and sneak up on them (like the Dex Nav)
Doing something like this would give players options for how they want to play the game, while simultaneously enriching the environments and making encounter rates less annoying.