UNWIND-PROTECT-CASE can be used to conveniently control on what circumstances cleanup operations are supposed to be performed.
+1 from me.
i'd be happy to push this, but imho the extra argument is unnecessary. i understand that it is a tiny bit more flexible in rare situations like:
(unwind-protect-case (aborted-p) (random 42) (:always (when aborted-p ...)))
but those are mostly covered by the three :always, :normal, :abort cases.
and it introduces an extra argument for unwind-protect-case which makes it look less like unwind-protect.
these are my 0.02, but i won't do anything on my own in this question unless others express their opinions, too.