The question is: Why is APT not smart enough to see that the proposed upgrade will fail?
It always starts to install packages and at some point fails because some package needs another package with a specific version. Why does it not detect these cases after starting upgrading packages? It knows the versions available for every package so it should prevent these problems. Is it a bug or a missing APT feature?