Eu nunca tive problemas com o desempenho em várias colunas nulas, mesmo em bancos de dados na casa dos 100 gigs. Imagino que você possa ter problemas se estiver executando índices nesses campos e usando null na consulta, mas não vi isso como um problema pessoalmente. Então, novamente, eu não criei tabelas de banco de dados onde todos os campos, exceto 3, eram anuláveis.
Por outro lado, vejo um problema de arquitetura quando a maioria dos dados é nula. o motivo geral é a) um banco de dados inadequadamente normalizado ou b) uma tentativa de permitir que os usuários organizem dados na tabela final em vez de criar tabelas separadas para "construir" dados antes de confirmar no banco de dados.
Cabe a você determinar a melhor arquitetura do seu banco de dados.