Код у вас там будет работать так же.Это связано с тем, что поведение downcasting определяется стандартом C.
Однако, если вы сделали это:
uint64_t a = 0x0123456789abcdefull;
uint32_t b = *(uint32_t*)&a;
printf("b is %x",b)
Тогда оно будет зависеть от порядка байтов.
РЕДАКТИРОВАТЬ:
Little Endian: b равно 89abcdef
Big Endian: b равно 01234567