Gb pas de complexes, vous avez bien éclairé la situation. La préposition sur a un sens bien précis : elle marque une position dominante en hauteur, ou à la surface de quelque chose. Elle ne peut pas être utilisée pour exprimer un déplacemment. Ce n'est pas une question de grammaire, mais simplement de vocabulaire ; les mots ont une signification, les employer dans un sens qui n'est pas le leur relève du barbarisme ou de l'impropriété.
L'autre préposition à est seule indiquée pour désigner le mouvement, le déplacement vers, ou encore la situation : je vais à Lyon, je suis à Lyon, je coucherai à Lyon.
Dire « Je vais sur Nice » est du snobisme, et malheureusement ces mauvaises habitudes font école.
Pour "en Arles, en Avignon",c'est aussi généralement considéré comme faux et snob. On ne dit pas en Argenteuil, en Amsterdam. Toutefois je suis surpris d'apprendre la position étrangement tolérante de l'Académie vis-à-vis de cet emploi condamné par tous les grammairiens :
On ne saurait condamner les tournures en Arles, en Avignon, bien attestées chez les meilleurs auteurs, et qui s’expliquent à la fois comme archaïsme (l’usage de en au lieu de à devant les noms de villes, surtout commençant par une voyelle, était beaucoup plus répandu à l’époque classique) et comme régionalisme provençal. Il semble cependant que cet emploi de en soit en régression. Rien ne justifie qu’on l’applique à d’autres villes : on ne dira pas en Arras, en Amiens, etc.
Quant à l’archaïsme (cf. Chanson de Roland : « en Sarraguce » ; La Bruyère : « en Épidaure » ; Racine : « en Argos »...), il peut être renforcé par le sentiment qu’Avignon et Arles ont été des États souverains.
Quant au régionalisme, le provençal, à l’instar du latin, distingue siéu (« je suis ») en Arle, en Avignoun (qui répond à la question ubi du latin) de vau (« je vais ») a(n) Arle, a(n) Avignoun (qui répond à la question quo du latin), évitant le hiatus a/a par l’introduction du n euphonique. Pour les francophones habitués à une forme unique à pour les deux questions, en et an, compris l’un et l’autre comme destinés à éviter le hiatus, se sont trouvés confondus en en français.