You should not be using type hints, i.e. type annotations for something that actually affects the runtime as a core part of the language.
What happens if the constant variable is the result of a function that changes its result on each call?
It keeps the first value that has been assigned to it.
This is semantically confusing. If it’s a constant in the way you are describing it doesn’t have a moment at runtime where the assignment is executed - this is what it means for it to be compile time expanded. Complex compile time evaluation is a whole new rabbit hole with weird implications.
Your mental model of how python currently works is incomplete to the point where part of your proposal is nonsensical. I would suggest doing more research, as well as reading up on previous discussions and e.g. PEP 795 which is related.