No, 0 and 1 both only log each instruction once. I think I managed to figure it out, though; it was just a matter of me starting the trace too early. I set hook_log.txt to
hook_rd1 7 2174ee 21751c
where 2174ee is the location of one of the control codes, and the 7 meant that it would automatically start tracing once it read that memory location, and not before. It still only logs each instruction once, but it makes a lot more sense now:
FF:55FC 1E 18 MOVE.b (A0)+,D7 D7=00000000 xnZvc
** [FF:55FC] R08 = 03 [2174EE]
FF:55FE E1 8F LSL.L #0,D7 D7=00000003 xnzvc
FF:5600 1E 18 MOVE.b (A0)+,D7 D7=00000300 xnzvc
** [FF:5600] R08 = DF [2174EF]
FF:5602 E1 8F LSL.L #0,D7 D7=000003DF xNzvc
FF:5604 1E 18 MOVE.b (A0)+,D7 D7=0003DF00 xnzvc
** [FF:5604] R08 = FF [2174F0]
FF:5606 E1 8F LSL.L #0,D7 D7=0003DFFF xNzvc
FF:5608 1E 18 MOVE.b (A0)+,D7 D7=03DFFF00 xnzvc
** [FF:5608] R08 = F1 [2174F1]
FF:560A 30 3C MOVE.w #$000F,D0 D7=03DFFFF1 xNzvc
So I guess I was right and "LSL.L #0,D7" shifts D7 by a byte, but that still doesn't make any sense to me.