You haven't done much Windows/UNIX/VMS programming, have you?
APIs how do they work, this is Adobe problem not Apple, every new OS APIs change,
Most of the time there are *no* changes to existing userland functionality - the API is a "contract" between the OS and the developer, and the API should not randomly change. If there are new features, then either the existing API calls should be modified in a compatible manner, or new calls should be added.
As an example, there are some deprecated (but still supported) APIs in Windows that had some odd bugs (going back 10-15-20 years). When Microsoft fixed the bugs, all hell broke loose during field testing - developers had created workarounds for the bugs, and when the OS was fixed it broke everything with the workaround. Microsoft renamed the fixed API call to a different name, and restored the broken one under its original name (and deprecated the old call).
A similar thing happened much further back on VMS. It was discovered that DCL ("Dave Cutler's Language" - the shell on VMS) had a bug so that function calls inside of comments were being executed. Comments with side effects are bad things. (All of the programmers on the board just threw up a little in their mouths, I'm sure.) This also caused an uproar when it was fixed though, because it turned out that calling the verification (echo) function inside a comment was the only way to create a shell script that was silent - and untold thousands of those scripts were in the field. The end result was that the "fix" was adjusted to do a special case check for an immediate mode verification function inside a comment, and execute it if found. Documentation:
http://www.openvms.compaq.com/doc/83final/9996/9996pro_123.html (last paragraph in description, before the examples section).
Apple-land appears to be the only place where the users turn on the vendors when the OS screws things up.
The rules are a little different in kernel-code. Sometimes progress requires that an old API has to be abandoned, or incompatibly modified.
Of course, a browser plugin is not kernel-mode code.
It's Adobe job to upgrade their software and have it ready when a new OS comes out. This one of main reasons companies have betas.
We disagree here - it's Apple's job not to create needless work for its vendors by randomly changing APIs and directions.