The big difference is that the transformer is (approximately) permutation equivariant, which makes a massive difference in generalization and training speed.
I understand each context input is embedded with its position, but I suppose the transformer can learn to ignore the position and just look at the context as an unordered set?