Pergunta interessante, depende do uso na minha opinião. Você ainda está protegido em termos de a sessão ser criptografada, mas não tem como saber se é o certificado SSL correto apresentado a você, a menos que você distribua o certificado raiz da CA para usuários / clientes. Para testes internos / projetos de desenvolvimento isso funcionaria muito, você gera um certificado de CA raiz que você usa para distribuir aos usuários (pode ser feito via Diretiva de Grupo no Windows e via linha de comando openssl no Linux / BSD) e usa esse certificado raiz para assinar seu CSR. Os usuários não verão um aviso nem nada e você sabe que o certificado está assinado por sua autoridade de certificação interna.
Para sites externos em que você não pode garantir isso, eu ainda diria que um certificado auto-assinado é melhor do que nenhum SSL se você estiver enviando senhas ou outras informações confidenciais através da conexão.
No entanto, do lado positivo existem muitos emissores de certificados "comerciais" muito baratos, sendo um deles o GoDaddy . Você pode obter um certificado por cerca de 40 euros por ano. GoDaddy até oferece certs gratuitos para sites de projetos do OpenSource.