A formatação de código do C# recebeu diversas influencias do Java (seu competidor direto quando foi criado, hoje não é mais) e também de outras linguagens mantidas pela Microsoft na época como VisualBasic.
Dificilmente alguém vai ter uma resposta precisa de pq as chaves na formatação padrão do Visual Studio começa na linha abaixo da primeira linha do bloco. Talvez isso facilite para a IDE onde começa e termina cada bloco, talvez fosse uma necessidade para o processo de compilação quando ela foi criada e se manteve assim. No fim, isso é apenas uma convenção, nada vai parar de funcionar por conta da formatação do código.
Quanto ao padrão de usar I para interfaces, eu já acho que isso é um padrão ruim. Quando a única coisa que diferencia o nome da classe da sua interface é a letra I, provavelmente você não precisa de uma interface.
Já vi códigos onde havia apenas uma classe para a interface, por exemplo:
interface IDbConnection
class DbConnection : IDbConnection
A intenção é boa, mas só adiciona complexidade pois se é 1 pra 1, não precisa de interface.
Agora se sua aplicação pode ter diferentes implementações, aí começa a fazer sentido:
interface DbConnection
class MySQLDbConnection : DbConnection
class SQLiteDbConnection : DbConnection
class OracleDbConnection : DbConnection
Nesse cenário, faz sentido ter uma interface pois a aplicação espera uma variação de implementações, e a própria nomenclatura das classes indica que não precisa do I na interface.
"Ah, mas vai que um dia eu precise de mais uma implementação de conexão...", quando esse dia chegar você cria a interface e as implementações, enquanto ele não chega, use apenas uma implementação e mantenha as coisas simples.