Just had a quick play with clear. Given your error message with clear(f(x)), I was kind of hoping (against hope) that there may have been a way to evaluate an expression that resulted in a "variable" name, and hence programmatically clear a variable by constructing its name.
This would be a very useful feature to have when creating temporary functions and variables. If say, the names all had the same structure, eg var_nnn (where nnn is a number), then one could have whizzed together a quick function / array+range variable / whatever and iterate over that.
However, clear breaks the normal Mathcad rules about everything being an expression, and is an imperative statement that doesn't return a value and hence can't be used as a function (or even return a value indicating it succeeded!).
(Of course, I'd also like a create function to go along with a clear function, that did the opposite and created a variable with a given name. And while I'm at it, I'd also like a function (funname ?) that returned a string with a function's name).
But I'd also like World Peace and to be on the first hyperspace-capable spaceship on it maiden voyage to Proxima Centauri ...