Até a 3.0.13, os JS e CSS servidos de public_html/dist/ só mudavam com um assets:publish manual. Depois de um release, o navegador podia continuar recebendo o script antigo. Agora toda atualização do sistema (CLI e painel) e todo deploy de projeto pela API chamam instalacao_dist_ressincronizar(), que compara os arquivos de origem com o manifesto de dist/, regrava o que mudou e renova o ?v= de cache.
Veja manifesto da instalação.