> Generally I just wish roll back the ref counts before the failing module.
Isn’t what you are describing what the code at the end of Modules.Load already does:
...
ELSIF res = 3 THEN importing := name;
WHILE nofimps > 0 DO DEC(nofimps); DEC(import[nofimps].refcnt) END
END
END ;
newmod := mod
END Load;
?