And we won't even get into Little-Endian vs. Big-Endian...
An "interesting" situation arises when dealing with constants in programs. One would like to put these in ROM but with a Harvard architecture, one can't access the locations as directly (if at all) as one can if the values are in RAM. Thus, one has to have either special functions to call to copy the constants to RAM when needed or copy them to RAM at program initialization. The latter runs the risk of the RAM location getting overwritten and the constant not being as constant as one wishes. The former adds a layer of complexity and additional execution time to the programming that one would just as soon avoid.
The AVR just adds to the problem by having word-oriented addressing for the ROM space and byte-oriented addressing for the RAM space. This makes life especially "interesting" for linkers which have to be able to distinguish between ROM and RAM addresses to perform the proper offset calculations.