What you’re describing does indeed happen — and in many cases I think it’s a good approach — but it’s not the same as what I’m talking about.
You might find these two blog posts useful:
1. OpenZeppelin’s post on the Ethereum proxy pattern: https://blog.openzeppelin.com/proxy-patterns/
2. USDC’s adventure in upgrading their contract: https://blog.coinbase.com/usdc-v2-upgrading-a-multi-billion-...