Sua configuração é perfeitamente aceitável e eu diria que é mesmo recomendado.
Seu DocumentRoot deve idealmente apontar apenas para arquivos que precisam ser exibidos para usuários finais. Os scripts e outros recursos usados por seus scripts voltados para o cliente podem ficar em um diretório diferente (por exemplo, public_html / back, conforme você o possui). Por exemplo, os arquivos de configuração, as classes de conectividade do banco de dados, etc. ficariam nas pastas não públicas.
Se você colocar tudo sob o DocumentRoot, você terá que proteger esses arquivos para que eles não sejam exibidos para os usuários finais (por exemplo, bloqueando o download usando .htaccess ou usando PHP para eliminar o pedido quando esses arquivos forem carregado diretamente).
Uma observação que eu tenho é que o nome "public_html" sugere público para os arquivos. Em nossa empresa, temos o ponto DocumentRoot para public_html (ou equivalente) e os arquivos "back" em um diretório totalmente diferente para evitar confusão.