good demo of my problem: http://fabricjs.com/hovering If you select any item, it is displayed on top. In earlier versions (1.5.0 - 1.6.2) this problem does not exist. Sorry
I believe that is meant as a convenience for the user. Although the object moves to the front while selected, as soon as it is deselected, it falls back to its original z-order.
You can test this out at the hovering demo you linked. Superimpose two objects and determine which is front of the other then select and deselect the object in the back. When you hover over them, the order should still be observed to be the same.