The problem is that there's a severe hole in the ABCs: there is no distinction between "container whose elements are mutable" and "container whose elements and size are mutable".
(related, there's no distinction for supporting slice operations or not, e.g. deque)
The important difference is that you don't need to import anything in order to quickly use list type. This wins in the majority of the cases, unless I'm building something that will be imported by multiple other modules and it really pays to be that explicit.
That was definitely a nice feature (I forget exactly when list over List was added). That said I've never really been bothered about having imports. Especially when I know the import is side effect free like the typing module. But I definitely use import free list for script files without many lines of code.
Sequence now lives at collections.abc. BTW, float is not a supertype of int (issubclass(int, float) == False). Normaly, It is acceptable to use int instead of float, but speaking of variance, it is more precise to use numbers.Real:
yeah it's an interesting case that an int can be treated as a float. I should probably update my post to mention that it's not strictly a supertype but a special exception mentioned in python's typehinting pep: https://peps.python.org/pep-0484/#the-numeric-tower