I'm not arguing that it would be nice if everything were wrapped up cleanly into a single mechanism.
But if you believe apm packages are objects now, then you need to understand they were just as much objects before. so your "three mechanisms" complaint isn't pointing out a change.
"extends" is a slightly stronger form of inheritance as you get parameters and (optionally!) immediate access to templates, and all the packages you extend and your own package share a single package_id.
But the "weak inheritance" from before - datamodels, tcl scripts, oh and resources and the include librarys, too - are unchanged, while the last - access to templates - isn't new, just strengthened/different.