I said a bunch of times already that I want to introduce origin tracking into apt, and have sticky origins with a list of allowed transitions.
It becomes increasingly clear that we should also remove pinning while doing so. Establishing a partial ordering for your sources that can conflict with your total ordering of them seems like an impossible effort.
But I'm not entirely sure yet. The design isn't entirely clear.