Not entirely sure but your question is a really good topic to open up for discussion so if you haven't already also include it in the Godot forums.
My money is on your first suspicion as you can extend in reverse of the node tree and lose all of the current class's implantations yet never future version of that same node.
if base node is Control
extend Node
# works
# no Control members like rect_position
# instance becomes Node in sceneTree
extend Button #fails
Understand your confusion like shouldn't a node be whatever a script tells it to be?
Honestly it's best to avoid the whole Node paradigm and use Class Reference
instead only extending a node when you need Node specific behavior or visual representations