Currently some methods for xml.etree.ElementTree.Element check the type subelements: append(), extend(), insert(). But there are other ways to add non-Element children: __setitem__(), __setstate__(), __deepcopy__(). This could cause crashes later in the C code and required to add numerous type checks for iterating and searching. Since the intention was to prevent adding non-Element children, it is better to check the type every time when add new children.
Well, if that's what it takes, then that's what it takes. I'm fine with the change. The (unaccelerated) ET doesn't strictly require it, but a) I can't really see a use case for non-Element classes in the tree, b) pretty much no-one uses plain Python ET anymore, and c) it's better to test the type on input than on usage.
If there wouldn't type checks in append(), extend() and insert(), I would consider to add the support of duck-typing in iterating and searching. But since non-Elements already are forbidden in the public API, it is better to forbid them everywhere and simplify internal code.