Well, hmmm.
I still believe that PACK should not just assume a definitional error is intentional by default.
However, it seems to me that in practice, not allowing you to put raised errors in packs at all creates stifling situations where you have to add refinements to every function that wants to speak generically about raised errors, to make them speak in META-protocols e.g. EVAL/ENTRAP
So I'm adding PACK*
which can be used in cases where it is warranted, and it will put raised errors in. But I suggest trying to avoid it, unless you are writing a truly general routine along the lines of EVAL. I've shown above that there's usually other ways to attack the problem.