ATmega328P assembler inline text and assembelr ALIGN
Program memory is 16 bits wide and the program address bus references Words not Bytes, so for example PC address 1 is the second WORD in program memory. The program memory address bus cannot select individual Bytes within a word.     


.db automatically puts the text at an 'even' address (padding the string with a zero if necessary) because the Byte equivalent of all program memory addresses is even (the actual address may be odd or even, depending on which WORD is being referenced). Therefore there is no need for an 'ALIGN EVEN' directive.    

The LPM instruction routes bits 15-1 of the Z register to program memory address bits 14-0 (referencing up to 32k Words or 64k Bytes), and bit 0 is used to select the lower or upper Byte in the Word. That is why you have to multiply the program address by 2 when putting it into the Z register.


Program memory (ROM) and data memory (RAM) are on separate buses. If you use a regular LD instruction it will access DATA memory (not program memory) and read the contents of RAM at that address. RAM is 8 bits wide and addressed in Bytes, so the address accessed will be exactly what is in the Z register.