In case anyone else comes up against this bug working with a FeatureLayer in a dynamic workspace (which I did), I implemented the above workaround in JSAPI by adding a definitionExpression similar to above. For example:
var dirty = (new Date()).getTime();
var lyrDynamic = new FeatureLayer(
serviceurl + "/dynamicLayer"
,{
id: "dynamicLayer"
,mode: FeatureLayer.MODE_ONDEMAND
,outFields: ["CLASS"]
,source: layerSource
,definitionExpression: dirty + "=" + dirty
}
);
Cheers,
jtm