This document is meant to be read after reading the explanation of 1.5 piston mechanics. I also recommend watching Myren Eario's video on block events.
Before the game tries to process a block event, it will check that the block ID of the block in the saved position matches the saved block ID. This will prevent block transmutation. However, the game does not check for orientation for example.
In 1.8 this allows for piston bedrock breaking as discovered by Myren Eario (see his video on headless piston technology). This is unfortunately not possible in 1.5 due to the specifics of how pistons work in this version. However, we can do some other interesting things.