Line 4 will not compile
I think that's because the lower registers (< 0x60) are addressed with a 0x20 offset for memory instructions and directly for IO instructions.
so DDRB = x actually writes to 0x24. You could try that address to see if it works.
The DDRx macro organises this for you.
If I have to program all registers in an 'if' or 'case' statement, I will probably make many errors and the program will grow really quick in size.
Try the above address adjustment, if it works just add 0x20 to all regs below 0x60.
Rob