I've looked into this now. Note that this is work in progress, so I might be wrong.
More specifically, I looked at the formulas which are used to calculate podracer handling data when upgrades are performed.
There are 7 upgrade categories [0 to 6] with 6 levels each [0 to 5].
This function adds 1 upgrade to the base handling (linked is the information for the speed upgrades (including Block5 and Block6; the link might break soon):
https://github.com/OpenSWE1R/swe1r-re/pull/33/files#diff-6722f97d41f93e6961ed99a923d88d48R85 Combine that with the base information for each podracer:
https://docs.google.com/spreadsheets/d/1wZHRtJj4cwPrnzPsaRHf1QMlhBLRIODayRAvwrhS3AI/edit?usp=sharing This suggests that block 5 and 6 are barely making any difference. Heck, some podracers are maxed out at level 2 already. That is because the upgrade quality is added to the base speed, but then limited by 650.0
And most basespeeds are so high, that adding the upgrade doesn't help anymore.
That means you can't get a faster podracer (ignoring boost) than that, even if you tried to.
Block6 will still give you a benefit if your part is broken: You will have more room before you drop below 650.0 if the part is damaged.
However, I'm not 100% sure how repairing works (yet).
But to me, it looks like it's a good strategy to only upgrade to a lower level, but then invest in repairing, so your upgrades don't become useless. - At least for the speed category.