Hinter der IDE von Arduino steckt letztlich auch nur ein Compiler und ein Commandline-Tool (avrdude) zum flaschen der Datei. Abe rdann braucht man auch einen geeigneten Programmer, den man mit den richtigen Pins an den Controller anschließen muss. Letztlich für den Laien/Endanwender nicht unbedingt ein passables Vorgehen.

Für viele Microcontroller gibt es die Möglichkeit eines "Over The Air"-Updates (OTA) - also flashen eines neuen Programms über WLAN. Der ESP kann das. Für AVR braucht man dafür erst mal irgendeine Art der Verbindung. Ich hab bisher nur darüber gelesen, also es selbst noch nicht probiert. Ich denke aber, dass man das prinzipiell nicht nur mit dem integrierten WLAN des ESP machen kann, sondern bei AVR auch per SRD-Funk bzw. über den seriellen Anschluss (dann müsste man dem Enduser einen entsprechenden Adapter mitgeben, um das Gerät mit USB/LAN/WLAN was auch immer zu verbinden).
Der µC holt sich die neue Programmdatei von der Quelle (z. B. aus dem Web), und programmiert sich damit sozusagen selbst.