Thanks everyone for interesting suggestions!

@Antoine @Guido:
Some of the possible options for the title are:
* Protocols (structural subtyping)
* Protocols (static duck typing)
* Structural subtyping (static duck typing)
which one do you prefer?

Yes, explicit imports are not necessary for static type checkers (I will add a short comment about this).

I agree with Guido on all points here. For example, is already a class,
and lots of code uses isinstance(obj, and similar checks with other ABCs
(also in a structural manner, i.e. via __subclasshook__). So that disabling this will case many breakages.
The question of whether typing.Iterable[int] should be a class is independent (orthogonal) and
does not belong to this PEP.