The & character is not usually a legal character in identifiers in programming languages, and is saved for operators and such.
I have not seen much in the way of good uses of & in names... it's rather ugly.
AT&T: "this seems pretty pointless"
Even if we took it away from word characters we could have exceptions such as for & and && where those standalone could be WORD!, if anyone really cared about that.
One of my pet usage suggestions for & has been to embrace the HTML Entity List, and allow it as a syntax for characters (minus the semicolon of course).
append some-string   ; adding a non-breaking space by entity name
Also, having that table built into the executable and offering it out could be pretty useful, even preferring to mold a known character using that instead of the numeric form.
This would help reduce the over-saturation of usages of #. An additional practical matter for that would be that you could specify characters as &{...} as well as &"..." ... this would help avoid escaping when putting characters in quotes as in the API:
REBVAL *ch = rebValue("second [10 &{b} 20]");
Today we can't use #{b} instead of #"b" because that gets interpreted as a binary. So you have to do this as the less appealing:
REBVAL *ch = rebValue("second [10 #\"b\" 20]");
The same thing happens trying to pass characters in double quotes inside --do
code on the command line. I think desire for this duality of forms applies to the other string-like things as well (e.g. FILE! should be able to be either %{...} or %"...")
We don't necessarily need to do it right now, but deprecating & in words ASAP helps clear the path to this or other applications.
Does anyone have particularly great arguments for why & should be allowed in WORD!?