De todas os IDEs que uso atualmente, não tenho a menor dúvida que o XCode é o pior deles, de longe. Tem uma interface completamente fora dos padrões (pra usar abas, tem que configurar… e é o pior uso de abas que eu já vi, ao invés de alternar apenas arquivos, cada aba guarda informações como item selecionado na árvore e a configuração de views visíveis… isso é bom? Não acho.) e alguns bugs muito chatos (outros apenas engraçados… várias vezes eu deletei um arquivo pelo próprio IDE e, logo depois, ele mesmo exibe warnings dizendo que não consegue achar o arquivo… que a própria aplicação acabou de apagar).
O principal é que o XCode parece não ter sido feito para se trabalhar em equipe. Talvez funcione com quem gerencia sozinho o projeto, mas com duas ou três pessoas, ocorrem conflitos no arquivo do projeto a todo momento em que se tenta atualizar pelo controle de versão (e esse arquivo do projeto é incompreensível). Aqui, nós usamos uma técnica de remover e readicionar todos os sources do projeto após um update do SVN, para "reconstruir" o arquivo do projeto. Sem contar que cada um possui suas chaves para executar a aplicação de iPhone no dispositivo real, então toda vez que atualizo o projeto após um commit de outra pessoa, o projeto vem configurado com as chaves dela. Eu poderia alterar novamente para usar as minhas chaves, mas isso não funciona. Preciso abrir o arquivo do projeto num editor de texto e mudar manualmente!
Sobre o SVN, também possui um suporte fraco e com muitos defeitos. Ao visualizar o histórico de mudanças de um arquivo, ele ficou totalmente perdido, mostrando alterações em uma data errada e até para um usuário errado. Coisas que só foram esclarecidas ao usar outro cliente SVN.
E, por fim… ultimamente, tem acontecido com certa frequência a perda do auto completion… que só é resolvido se eu apago o projeto e baixo novamente do controle de versão… e quem programa com o rebuscado objective-c, sabe que esse problema torna as coisas bem difíceis.