If you look at today's language landscape, you have langauges like C, C++, Java etc occupying the "serious" niche and languages like Python etc occupying the "glue" niche ( although sometimes these languages do exchange roles ). The "glue" languages that succeeded did have support for arrays etc.
I think both parties have been proven right, at least partially.
I like RMS for what he's done for Free Software, but I rarely find myself agreeing with him wholeheartedly on technical questions.
For what it's worth, Tcl has had support for O(1) array indexing since 8.0 in 1997. That's because starting with 8.0, Tcl values had both an efficient internal representation and an external string representation. It's not a perfect solution, because it's not always transparent when (inefficient) transformations between representations take place, but it's definitely possible.
OK, I imagine it. What would be the problem?
He is correct in that Tcl's niche is too narrow to serve as a universal scripting language (though that, as John Ousterhout pointed out, wasn't really Tcl's goal to begin with).
But he was also mistaken (I think) in thinking that a universal scripting language would be both possible and a good idea.
In practice, needs and preferences are too diverse for one scripting language to serve them all equally well; also, language competition is a good idea.
The biggest problem that people had with Stallman's argument, I think, was that he was pushing the immature GEL/Guile as a replacement (and it would remain immature for years to come), while Tcl at the very least did its job well.