Apple seems to have an internal developer culture that basically does not value backwards-compatibility nor stability, and instead really loves rewriting huge pieces of code all the time. If you look at the OSS that it releases, you'll see interfaces between the various components change greatly between versions and lots of other churn. There are many places which look unimplemented, with only stub functions present. With such a situation, it's not hard to envision how a simple "change the MAC address" function could've gotten left out of some piece during a rewrite, because it otherwise does not affect basic functionality.
I really recommend downloading the OSS from Apple and inspecting it; the pieces it copied from BSDs etc. are relatively stable, but the amount of churn in other pieces is surprising to see.