Variables aren't hardcoded into the game tooltips.
The difficulty with coefficients is more like: The tooltip says "Deals @f1@ magic damage". The champion's scripts on the game server calculates how much damage it should deal and then uses that to both deal the damage as well as send the value of what "f1" should be to the client.
This means that the game client only ever has the result, never the coefficient and has no understanding of how things got to where they were, they just are. That's not hardcoded values, but it is a process that makes coefficients rather difficult.
The newer tech looks pretty different from all of that. It's instead, a League specific formula is authored that directly drives visuals and script can ask for the result for. This is actually where all the strange "{{ qdamage }}" stuff you see on the League website comes from, as those are the placeholder tokens for that system, we've just yet to build a visual writer for them into non-Game places.