Was messing around with observers, seeing what I could make with them when I came across some strange properties of the blocks.
Strange property 1:
No screenshot would do this one justice, but it has to do with the placement of observer clocks. How this goes is you have two observer clocks (Observer clock = Two observers facing eachother), one where you place both observers yourself, one facing the other, and the other observer clock, where you push one of the observers into place, making sure it ends up with them both facing eachother to complete this clock.
If you hook each clock up to something (Except for lamps, (This is covered later on)), you'll notice that the clock where you pushed an observer into place goes faster. I tested this out by connecting each clock to a dispenser with 64 arrows (I do not claim that these results are in any way accurate). The player-placed observer clock fired all of the 64 arrows in approximately 19 seconds, whereas the piston-placed observer clock fired all 64 arrows in aproximately 13 seconds.
I'm under the impression that this difference has to do with some sort of delay caused by the piston pushing the observer into place, making the oberserver activations synchronize better/faster. All that said, it was rather confusing when I first discovered this myself.
Strange property 2: (Contains screenshot, open spoiler to view)
With two oberservers facing eachother, it creates an observer clock. As you can see, when one side of this clock is hooked up to a light, it will stay on reguardless as to wether the redstone signal is on or off, or if it is a piston-pushed observer clock or not. When checking F3, it is confirmed that this is not some sort of graphical glitch, as the redstone signal does indeed change between 0 and 15, and the lamp does not change from a lit lamp to a usual lamp. This might be something to do with the lamp, it might be a bug, but reguardless it is interesting, and could be useful for redstone builds.
So, are these bugs or features? Why do they happen? Have you made any interesting redstone contraptions using these strange properties?
I don't know about the first one.. that certainly sounds like a bug. I've also run into issues with clocks running at different speeds based on where they're sitting in the world -- that is, moving them a few blocks one way or the other fixes it -- so who knows. That particular instance was a comparator clock but same thing may apply to your observer clock.
The second one is definitely not a bug. Redstone lamps have a 2 tick delay before they'll turn off after getting a signal, and observer clocks pulse at a 1 tick rate, so you're just continuously refreshing the lamp's internal delay without ever allowing it to turn off. If you replace one of your repeaters with just a dust in your comparison clock (making it also a 1 tick delay,) you should see the same effect with the lamp being permanently on and not flickering. Mojang did that just to prevent abusive players (or just players who aren't thinking it through enough) from demolishing performance by forcing too many lighting updates (not that you can't still do that of course if you try, but its a little bit harder with the delay.)
Property 1 most likely has something to do with when tile entities are processed in a tick, which could influence how the observer detects them. Also, I think pistons cause a block update when they start moving a block as well as when it finishes, which may cause the observer to be triggered twice instead of once.
Property 2 has to do with how lamps react to a signal. When turning on, a lamp will wait for 2 game ticks before actually replacing itself with an on-state block. If you give it a shorter pulse than that, it won't turn on at all. When turning off though, a lamp will wait 4 game ticks before replacing itself with an off-state lamp. As such, if the power is cut for less time than that, it won't turn off. Observers and repeaters most likely have different scheduling priorities, one below lamps, and one above them. As such, the repeater updates before the lamp does its logic, and the observer updates after. That's the most likely explanation I can think of.
Property 3 occurs because when the piston retracts, the observer gives another pulse, which quaesi-powers the piston, so it extends again. When it gets to the top, it notices it's no longer powered, and retracts, thus repeating the cycle. Powering the piston prevents it from retracting again, which stops it. You can also replace the observer with an ordinary redstone block and you'll observe the same effect, though possibly slightly faster since the redstone block is always powered, where as the observer has a 2 tick delay. If you place another solid block above the slime block though, the redstone block version won't make a clock anymore since the solid block materializes AFTER the piston has already gotten a block update, so it doesn't think it's movable. The observer version would still probably work though, since it provides another block update after 2 ticks.