Blocks which require a non-solid block above are not cloned successfully (or rather change when placed) when the block above them is cloned as well. An example for this is farmland or the path block which both turn into dirt.
- Place a path block and on top of it tripwire
- Clone the path block and the tripwire
→ You will notice that the path block turned into dirt
Based on 1.11.2 decompiled using MCP 9.35 rc1
The method net.minecraft.command.CommandClone.execute(MinecraftServer, ICommandSender, String) places at every position where it is going to place a block a barrier block and after that starts pasting the blocks. This means the block requiring a non-solid block above, in this case a path block, is placed below a barrier block which is a solid-block and therefor the pasted block changes, in this case it turns into dirt.