The disassembler (IDA Demo, specifically) misled me by uniting several commands into one line. It made a single mov
line out of a mov-orr-orr
sequence that was meant to assign a full 32-bit constant to a register. The thunks were Thumb after all. The linker works as designed.
IDA is otherwise great. I knew in the back of my mind about this particular behavior regarding ARM, but this time it slipped.
My bad, thanks and upvotes to everyone who tried to help.