When a command block is created, it seems to be unable to execute its command at first.
How to reproduce:
Put a command block, and type this command:
. When activated, this will create a new command block with a command "say Hi!". Put a repeater between them, facing the second block. Put a button on the first one, and press it. You will see the repeater getting powered (and the second block created if you broke it), but there will be no "Hi!" in chat.
If you set first block's command to something else, second block will not be replaced just before powering, and will execute its command normally. Also, making 2 blocks wide gap instead of one and putting two repeaters between them also solves this issue (even if sum of their delays is smaller than delay of one repeater).
EDIT: whoops, seems that i accidentally wrote "1" in block data, changing to 0 fixes this