This is an alternative to D150004, mostly to prompt discussion. @MaskRay pointed out @compnerd's previous change here, and I noticed a bit of code being removed which seemed to be relevant to the evaluateAsAbsolute discussion. As I'd suspected, adding this back in does seem to fix the specific bugs we have test coverage for.
I want to be careful here and say this is not a real patch. I'm solidly out of my area, and wouldn't feel comfortable landing this. This is purely to see if it helps inform the discussion on the other patch.