I only know of "standard, easy" DOM code to applyStyle and not to remove it.
I have given you the only three choices that I know of, the first only uses two lines of code, so would appear to be the simplest choice. The third version from the Clean SL script uses a named function, so you only need to use the function once then you can call it by name multipe times in multiple locations in your code.
You could answer your own question by trying the code yourself... But to answer your question, no, it removes all layer styles.
Offhand, to only remove the Color Overlay style leaving other styles intact:
var iddsfx = charIDToTypeID( "dsfx" );
var desc316 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref84 = new ActionReference();
var idSoFi = charIDToTypeID( "SoFi" );
ref84.putIndex( idSoFi, 1 );
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref84.putEnumerated( idLyr, idOrdn, idTrgt );
desc316.putReference( idnull, ref84 );
executeAction( iddsfx, desc316, DialogModes.NO );
or
removeColorOverlayFX();
function removeColorOverlayFX() {
var c2t = function (s) {
return app.charIDToTypeID(s);
};
var s2t = function (s) {
return app.stringIDToTypeID(s);
};
var descriptor = new ActionDescriptor();
var reference = new ActionReference();
reference.putIndex( s2t( "solidFill" ), 1 );
reference.putEnumerated( s2t( "layer" ), s2t( "ordinal" ), s2t( "targetEnum" ));
descriptor.putReference( c2t( "null" ), reference );
executeAction( s2t( "disableSingleFX" ), descriptor, DialogModes.NO );
}
Be thankful that we have the ScriptingListener plugin, Clean SL etc. Without these options we would be stuffed.