The short answer is "yes". The long answer is "yes, but we might not
be 100% perfect". We fight really hard to make sure things remain
compatible and we don't remove anything.
There are occasionally small differences in undocumented behaviors --
but we try to minimize those as well. Nothing has really gone away
in the last several releases and moving forward I want this to be even
more locked down.
Callbacks should be added over time, but not removed, and they are
already written in such a way that if you don't have a particular
callback it won't crash on you for not having a hook for it.
API compatibility for scripts is also important -- and as things are
changing structurally less and less, I am more confident to say
compatibility is going to be even more the case than now.
I think most people here would agree with that, save for, like I said,
undocumented behaviors changing around occasionally.