>and then an appropriate sequence of byte-by-byte loads (or stores) will be >used to access it,
for static references such as s.c there's an optimisation that allows the nearest aligned values to be loaded, shifted & masked, and or'd together to save accesses by byte, but that doesn't seem to be possible for an unaligned pointer reference.