Tl;dr:unstable is not a development branch, it is a integration branch. Experimental might be considered a development one.
Uploading to unstable publishes packages as "destined for stable". In the case of libraries, that also means that users of this library will start linking against the new binary. This again implies that the two packages now must go to testing together. This quickly leads to situations where significant parts of unstable cannot progress to testing due to issues in central packages (think gtk).
Building new packages against libraries from testing would reduce the formal requirements for testing propagation, but would lead to untested combinations in testing (as unstable users had a different version installed).