Acabei indo com a opção # 1 (reescrevendo dinamicamente os vários arquivos de configuração que precisavam do ethX). Isso foi fácil de fazer com um simples script Ruby.
Se o script que está fazendo a reescrita dinâmica for startup.rb , criei um wrapper chamado startup-wrapper.rb que chama o script real com exec 'sudo startup.rb' , para que startup.rb seja executado com permissões de root.
Eu, então, criei uma entrada em Startup Applications com o seguinte comando: gnome-terminal -e /path/to/startup-wrapper.rb . Isso solicitará ao usuário sua senha para o sudo na inicialização.