> I tried pretty hard to get vim to produce "errorbells" of any kind, but did not have success.

Ha, ha, I had the Beep sound mapped to nothing.  Now dings abound everywhere.

>  I think vim documentation does say that U always marks the buffer dirty

Not so.  `U` on a fresh empty buffer in vim dings and does not mark the buffer dirty.  But a failed `U` does not appear to abort a vim macro.