After a second look, here's what it seems to me:
It's not in a generic place, such as ldl, because in general, we may want to
grab
a 32-bit value from a 64-bit address. This is perfectly valid.
It's a specifity that the pop instruction, when not in long mode (manual says
that in 64-bit mode
no 32-bit operand is valid, but then again, qemu should use the POPQ macro),
that ssp:sp may overflow,
but we don't want it.
It would be possible to do something more generic if we had a
segment_to_linear() function, that returned
the linear address, but we don't.
Does it make more sense to you?