how would you do this syntactically? nil or () as a replacement expressions wouldn't work, replace would plug in a nil or a (), while for empty strings it is fine with "". Of course one could do:
(while (set 'pos (find exp lst)) (pop lst pos))
as a replacement for 'remove'?
Or another idea would be, if the replacement expression is missing, than 'replace' works like remove? and this would also work for strings?
Just checked the last suggestion: 'replace' with out replacement expression works like 'remove', in the code and it would be pretty easy to implement. After throwing the old 'replace' away, this would save a little bit of code.