Why my slice gets moved instead of borrowed?

Just to get ir right, this code worked:

ip_repr.emit(tx_buffer, &caps.checksum);
let payload = &mut tx_buffer[ip_repr.buffer_len()..];
packet.emit_payload(ip_repr, payload, &caps);

because, as in this explanation says: Questions about `&mut T` and move semantics, `&mut T` is "move-only"? - #16 by ExpHP, an implicit reborrow occurs?