Correct, the assembler code will be using "sized" operations to do byte, word or long accesses (byte=8 bit, word=16 bit, long = 32 bit). But the rules about alignments vary from one type of processor to another (and sometimes also varies depending on the settings or models withing a processor family).
I don't know much about it, but in assembly you don't have 'types', you just have different operations and these operations have different versions for different sizes. Correct? So that leads to a possible compiler problem?