You can't refight trainers until 1 week passes. Saying the game isn't grindy because you can wait a week for trainers to respawn is a terrible argument. Most people want to play the game once they get in, not wait a week for trainers to reset.
You are wrong about not evolving your pokemon for the story as well. Over leveled pokemon recieve less XP for the same kill. The XP curve isn't linear either, it has a power relationship, so being able to level 3 times as fast isn't going to make your pokemon 3 times as strong.
Say you have two Bulbasaur. One you evolve to Venusaur at 32, the other you keep as Bulbasaur. You immediately get the benefit of Venusaur's stats so it's already ahead, but let's play the long game and see how they compare after you play for a while and the bulbasaur feels the benefit of the increased leveling speed. Let's pick a completely arbitrary of level 50 for the Venusaur, and see how strong the Bulbasaur would be. I'll even be generous and say they both have perfect IVs and are fully EV trained so the difference in base stats is minimised. In reality you won't have perfect IVs so the difference will be greater.
Napkin math time:
Venusaur: 525*2+31*6+63=1299
Bulbasaur: 318*2+31*6+63=885
1299/885=1.47
Since stat contribution from base stats, IV and EV are proportional to level, Bulbasaur has to get 1.47x higher level than Venusaur to pull ahead. So Bulbasaur has to reach level 74 to be ahead of the Venasaur using our arbitrary level of 50 for Venusaur.
XP for Venusaur to get from 32 to 50 is: 4399*208=914992
If Bulbasaur earned 914992 XP it would give a coefficient of: 914992/64=14297
Add that to the coefficient to reach 32 (1493) and you get a coefficient of 15790, which means the Bulbasaur would be level 69. That's 5 levels below 74, which is what it would need to break even with Venusaur's stats.
However, since this game uses Gen 5's scaled XP formula for calculating XP yield, the Bulbasaur will be earning less XP than the Venusaur for the same kills. It would take too much time to calculate exactly how much XP the Bulbasaur earns in relation to the Venusaur, but assuming they are killing level 30s (which is reasonable for someone still progressing through the story so they don't have access to Victory Road etc.), the Venusaur would be earning 0.534x the normal XP amount and the Bulbasaur 0.331x the base XP amount if they are level 50 and 69 respectively. So Venusaur would be getting 1.61x more XP for a kill at this level. Suffice to say Bulbasaur won't be level 69 by the time Venusaur is 50, so your Bulbasaur is even further behind.
Oh, and in case you are going to claim it takes longer for Bulbasaur to pull ahead, a 68 Venusaur equals a 100 Bulbasaur's stats. So using the same method as above, when Venusaur reaches 68 Bulbasaur is only 94. That also ignores XP scaling which is even greater due to the increased level difference, so Bulbasaur would be even further behind that benchmark.
Now i'm sure you could find a pokemon where it's better not to evolve after a while, but i think using the starter Pokemon is a fair example given that almost everyone will have one in their party.
The optimal way to play is to evolve your pokemon to have an easier time getting through the gyms, then banking them and getting new unevolved pokemon to level 100 once you have the map unlocked and have access to the better farming spots like Seafoam, Dragon's Den and Cerulean Cave.
EDIT: Here is my table of XP coefficients to reach each level if you want to check my maths. Multiply the coefficient by the pokemon's base xp yield to find how much XP it takes to reach that level.
Alright first of all you misinterpreted what I said, I said nothing about re-battling trainers, one would assume you would know the first gym is brock and if you chose charmander you would try to get something to beat him early, there are a bunch of trainers before you get to brock that you would have to fight naturally not re-battle, and like I said before if you are evolving your pokemon you are PLAYING THE GAME WRONG it doesn't matter if a level 50 venasaur is better than a level 69 bulbasaur because if you evolve your bulbasaur you're going to be spending way too much time GRINDING for it to be useful, you can easily beat the entire kanto region without evolving any pokemon I know this because I along with everyone else who played the game the way it was designed did this, then I trained my pokemon from the mid 70's and 80's which they will be by the time you beat giovanni if you have just fought every trainer in the region to level 90 in seafoam bf4 which took about 2 hours per pokemon, essentially if you play PRO the efficient way the only grinding you'll be doing is between 8-12 hours and that's just to overlevel them to 90 before evolution which I did most people take a team of 80-85 pokemon to the elite four. Your complaints literally stem from you wanting to play this like a handheld pokemon game when it's designed to be played differently.
tl;dr Don't evolve your pokemon until at least level 80 and you'll never be grinding during the story, if you're not doing that you're just playing wrong. Please stop complaining that the game is poorly designed when your issue is ignoring the perfectly fine game design
Edit:I realize saying "you're playing the game wrong" sounds mean and I'm not trying to be I'm just trying to express that while there are many ways to play the game there is a way to play that is efficient and would relieve your complaints and it sounds like you're upset because the way you want to play is harder, it is harder but it's a choice you made to not play efficiently and you can't ask for a game mechanic to be changed because you are in the minority and don't want to play the optimal way.