Writing a Fusion application based on MapServer 5.0.2, I experienced some incorrect behaviour in the legend. Often, if I click a group, the map is not redrawn. With other groups, redrawing was triggered as expected. I was not able to identify a logic behind this that could help reproducing the error. However, I found something that I think is a bug in MapServer/MapServer?.js. Fixing this issue also fixed the incorrect behaviour in the legend.
In the methods Fusion.Maps.MapServer.showGroup(..) and Fusion.Maps.MapServer.hideGroup(..), there are calls to this.oMap. I am not sure, but I think that the MapServer object does not have such a field. However, another object in the two methods, namely group, does have a field oMap. Thus, I suspect that there is a bug stemming from a typo or from some unfinished copy/paste.
I suggest changing the lines as follows:
this.oMap.showLayer(group.layers[i].layerName);
should become
this.showLayer(group.layers[i].layerName);
and
this.oMap.hideLayer(group.layers[i].layerName);
should become
this.hideLayer(group.layers[i].layerName);
It works in my application. Perhaps someone knowledgable should have a look at this and determine if this is indeed something that needs to be fixed.