Для чего дана возможность делать так a: type = ...?
Для линтеров и интегрированных сред. Сам Python аннотации типов игнорирует.
Таким образом программисты обычно оставляют некую подсказку с каким типом данный работает функция или метод и если вы передадите str вместо ожидаемого типа int, то программа упадет выдав исключение.