Olá Vitor,
Tudo bem?
Sobre o uso da classe Exception pra tudo, até entendo seu ponto de vista e ele até vai funcionar desde que a unica coisa que você queira fazer seja dar um feedback para o usuário.
Se você, eventualmente, quiser aplicar um tratamento especifico para diferentes tipos de erros, você vai ter problema.
Existe, por exemplo, uma exceção especifica para quando ocorrer timeout numa conexão com banco de dados SQL Server (ou seja, o tempo limite de espera por um retorno do banco foi ultrapassado) e neste caso, talvez, antes dar um feedback ao usuário, seja válido realizar mais algumas tentativas de conexão (em outras palavras: realizar novas tentativas de conexão é um tratamento que poderia ser dado para quando a exceção capturada for especifica de timeout. Se você capturar a exceção com a classe Exception, não vou dizer que você não conseguiria aplicar um tratamento especifico, por que você até conseguiria, mas você teria que validar a mensagem de erro, ficar verificando texto da mensagem de erro. Seria uma solução feia para o problema).
Espero ter ajudado.
Abraços.