Há muito poucos limites. A única limitação importante é que os modelos não podem ser substituídos e você precisa adicionar novas coisas às visualizações existentes usando Plugin Outlets. Dito isso, fazer isso em combinação com algum CSS geralmente resolve o problema.
Você pode criar novas rotas e ter controle total sobre como elas são organizadas.
O back-end é mais flexível.
Portanto, use as APIs oficiais para o máximo possível e a necessidade de refatoração será mais limitada, mas você nunca eliminará completamente o trabalho de manutenção.
Não é razoável esperar nenhuma manutenção… basta olhar minha conta no GitHub e algumas das minhas extensões populares e você verá muitos commits de “COMPATIBILIDADE:” ![]()
É uma boa prática manter um servidor de staging onde você possa testar atualizações e ver se alguma de suas personalizações quebra — quanto mais personalizado for o seu site, maior será a necessidade de algum tipo de instância de staging — embora o uso de uma instância de desenvolvimento possa ajudar.