A dump of memory (several kilobytes, megabytes or whatever) is inherently big endian: it proceeds from the base address and goes up.
It only looks "inherently big endian" when you print bytes on each line starting from the left. This way of printing numbers makes little sense as you end up with some kind of mixed-endian where the bytes are ordered one way and the bits another way.
Start each line with bytes from the right instead to make the bytes and bits numbering consistent, and you can print large little-endian dumps with all bits and bytes are where you expect them to be.
Everything is consistent in the big (down to the nybble and bit) endian view.
The number 0x12345678 is actually the nybbles 1 2 3 4 ... which are the bits 0001 0010 0011 0100 and so on.
In the hex dump 12 34 56 78 we just understand the bytes to be big-endian also at the nybble level (and bit also).
That is to say the "1" can be understood to be at the lower "nybble address", relative to the "2".
If that buffer is sent over a serial communication channel or network, the bits actually go in that order 0001 0010 0011. The 1 nybble goes out first, as 0001 (three zeros out the door, then a one), then the 2 nybble and so on.
It depends. with RS-232 (the old serial port standard) bits were transmitted least-significant-bit first, with the most significant bit sent last [1]. Getting back to hex dumps, here's one of some data:
It is counterintuitive to swap pieces of it into some locally opposite order.
Yet, that's what has to be done so that numbers are readable.
That's why "od" has modes for that.