Many software vendors would say that a published interface can only be
removed after two major releases of the software. The first major
release should suggest that the interface is depricated and should no
longer be used (the documentation should probably suggest the (new?)
alternatives too). The following release can then remove the interface.
While this is painful for the developer, it's necessary for any API
provider in order to provide a *viable* platform for building upon.
Personally, I think FreeBSD should adopt such a strategy.
We did. I added it to the Committers Guide a while ago.