Never heard of anyone running into this kind of issue. The mapCllbackHandler I believe is where map events are stored and the layer listeners is where the layer events are stored, so that looks fine.
Note that mouseover only fires when the mouse initially goes over a layer. If you have multiple shapes close together with no pixel gap between them and move from one shape to another, this event won't fire since its the same layer. If you want to know when a new shape is hovered, you will need to use the mouse move event and consider tracking the active shape. For example:
var currentShape;
//Monitor movement over a layer.
map.events.add('mousemove', layer, function (e) {
var id = e.shape[0].getId();
//If the mouse is over the same shape, ignore it.
if(id === currentShape){
return;
}
//New shape detected.
currentShape = id;
//Add your event logic here.
});
//Clear the tracked shape.
map.events.add('mouseleave', layer, function (e) {
currentShape = null;
});