The obvious solution is that unpublish should be available within a time window after a new version is published and then unavailable after that.
It should be that within the first X hours you can pull a version regardless of dependants, after that you should need approval.