Ну, знаешь игрушки с лончерами? И они такие иногда: "Лончер обновился, нужно перезагрузить" — вот это происходит когда сам исполняемый файл лончера обновляется.
Но в целом, куда проще когда само приложение — просто проигрыватель для кода (например, интерпретатор луа). Тогда для обновления достаточно замены скриптов, и даже перезагружаться можно без перезагрузки, очищая интерпретатор до дефолтного состояния и запуская какой-нибудь main заново.