Yeah, it's weird, but I think I know why.
1→{GDB0}r
is one byte less than
1→{GDB0}
because in Axe, numbers are treated as two-byte numbers for all operations (because it's all stored in HL, which is a two-byte register). So when Axe sees that 1, it loads 0001h to HL. Then when you store it to a one-byte space, it has to first load L (the single-byte portion of HL) to A (which is like HL for one-byte numbers), then stores it from A. On the other hand, if you're storing to a two-byte space, it just stores HL straight there.
EDIT: Of course, if Axe 2.0 (or whatever that was called) uses one-byte operations, it won't be this way