If two parties exchange messages and we would like at the end of exchange either both parties can learn the secret or both parties can not, it is easy to prove this is impossible.
For any such exchange there is a last message, the sending party doesn't learn anything if we drop it and the other party must still be able to learn the secret.
If continue we end up with a 0 message protocol and this obviously can't be done.
However the above proof falsely assumes at every step we are in a binary state of either can or can not find the secret. A more realistic model is we can always find the secret with some computational effort.
We can therefor have a protocol where in each round the computational cost is reduced for both sides slightly e.g by revealing part of a key protecting the secret. And providing proof in each round we are indeed compliant.
If one party breaks off the exchange early, they will have a slight advantage over the other party but won't be in a position where they got everything and the other side nothing.