I think t7-t9 (debatable) Pokemon should have a minimum value to make them at least worth catching. For example a vendor trading them for pokedollars or multiple (possibly self caught) of any one tier for a random of the same tier, it feels pretty bad knowing that youre just wasting money catching a rare pokemon you find during story. Im not asking for this to be the best thing to do with rare pokemon, i just want it to be a small reward that covers the cost for the balls at least.
Rework the EXP curve for evolved pokemon to gradually start requiring the same amount of experience. Its not fun leveling a weak Pokemon to 90 something when you dont have access to false swipe or good leveling areas during story just because the exp rates are so awful for evolved ones.
For example you could set a default exp rate that Pokemon will gravitate towards until reaching it at a Pokemon specific level. With the default set as one, Magikarp could start with a factor of 0.2, gradually increasing until it hits required experience the default value of 1 at say level 80. Gyarados starts with a factor of 5x at level 20 which gradually decreases to 1 at level 80 meaning Magikarp would be "free" to evolve at 80 and significantly "cheaper" to evolve at 50 compared to 20. A starter could have a factor of 0.4 starting to rise once it hits the required level for its first evolution and reaching 1 at 50 while its first evolved form starts at 2.5 and reaches 1 at 50 as well. Second evolved form could start at 5 decaying to 1 at level 80. A Dragonite could for example have a factor of 8 reaching 1 only at level 95. All the numbers are placeholders and are only meant to explain the concept.