Thanks to everyone who gave me suggestions about why a leg wasn’t seated squarely in its joint. After quadruple checking my combination square for squareness (it is), it turns out the culprit was human error.
First, the shoulder isn’t perfectly seated after all. The mortise canted ever so slightly inward, but the toothed underside of the benchtop hid the minute gap between the slab and the shoulder of the mortise. I corrected this (with a bit of paring inside the mortise) and the joint still (thankfully) fits very snugly. The canted mortise was about 75% of the problem.
Second, there is a very slight hollow where I was resting my square. It must be left over from traversing the underside of the benchtop. It runs down a couple thou toward the mortise, which doesn’t really show with a long straightedge across the whole width. But with a small machinist’s square, it’s plain as day. Not worth fussing over, I think.
Oh well. At least I got blog two posts out of it.