core_panic() doesn't expect the message to be in program memory, but in data memory. Bad things will happen on AVR when the address is interpreted as being in data address space, but the allocation is done in program address space.