Counterintuitive behavior of Remove function

The sequence of commands entered in one cell in the Mathematica (8.0.4.0) shell returns 1 but does not assigns any value to x:

Remove[x]; x = 1

I wonder if it is a feature which serves some purpose; a bug and Wolfram is going to fix it; or a bug and Wolfram doesn’t care about it.

It’s a feature:

In[1]:= Remove[x]; x

Out[1]= \!\(
TagBox[
RowBox[{"Removed", "[", "\<\"x\"\>", "]"}],
False,
Editable->False]\)

See the documentation: “If you have an expression that contains a symbol which you remove, the removed symbol will be printed as Removed[“name”], where its name is given in a string.”
It’s because you’ve removed the symbol from the variable list before the expression completed in evaluation.