Yet another instance of when I should just go home as the little hand approaches 12 rather than stare at code and fix just one more bug. I finally chased down why my server wasn't sanitizing its input as I thought it should, and why I couldn't explain why "const T& x = y.x()" was producing a *different* x from y.x(). Turns out, I just hadn't restarted my program; I was running an old version of the code in the debugger. Ugh.
The good news is, after recompiling and running again, it all ran as it should have.
Also, heated car seats are an excellent complement to wearing shorts.