If package A depends on package B and installs it via require(), package B will be locked on A even if A failed immidiately after installing B.
In this case B will be installed, and attempt of uninstall it will produce cryptic message: "Error: Removing this package would break: Package B".
One way to fix this will be to check if packages listed in supports file are installed, and ignore them for the purpose of uninstall if not. Another way is to make the meta package to uninstall dependencies on rollback. (I wonder if one logCommand of uninstallPackage will magicaly work...)
Yet another way, if successfully installed dependencies are supposed to be left on the system (are they?), will be to unforge dependency on rollback.