This is a rather simple bug, assuming it is unintentional, but the shield bash uses secondaryScale instead of primaryScale, so it ends up scaling to criticals instead of stubbornness. I went into spelldb and editted it myself but I don't know if its just my copy, I don't remember cleaning the RC out before starting up dredmor.
Well, I better finish my run with a max-crit character focused on abusing Shield Bash then! Of course, scaling to block would be twice as easy, at least...