The fundamental reason why many functional languages won't allow you to do the first is that they use immutable data structures.
We could indeed introduce syntactic sugar (`y= (x[0]:=10)` maybe), but you'll still need to introduce a new variable to hold the modified list.