GNOME Extensions actually run in the gnome-shell process itself and can do most things that a builtin solution could offer.
They fail in some circumstances […] and behave inconsistently
That proves why they shouldn’t be part of GNOME Shell themselves. Offloading some (debatable) functionality to extensions helps keeping the core components reliable and maintainable.