I have put in a new test, test-undeferred-warnings.script, that illustrates your problem.
It fails on the version of SBCL I have on my Mac, but succeeds on ACL and CCL.
I think this is arguably an SBCL bug. I understand there's been some correspondence on the subject of deferring warnings on sbcl-devel lately.
Cheers, r