Definindo MySQL sem explícito chaves primárias é uma péssima idéia.
Se um PK estiver faltando, o MySQL criará uma chave primária de autoincremento de inteiro implícito (mas muito real).
Este PK será incluído em cada chave secundária no InnoDB e determinará sua ordem de classificação primária no MyISAM.
Consequência
Você acabou de diminuir o desempenho de cada seleção, inserção e atualização.
Sem nenhum propósito.
InnoDB:pesquisa extra necessária para obter dados da tabela
No InnoDB, uma pesquisa extra precisa ser feita, pois todos os índices secundários referem-se ao PK e não às próprias linhas.
MyISAM:espaço desperdiçado
No MyISAM a penalidade não é tão grande, mas você ainda está arrastando um campo de 4 bytes não utilizado que não é usado.
InnoDB + MyISAM:geração inútil de campo de incremento automático
Porque um PK de autoincremento implícito é criado, e você também precisava de uma chave extra de autoincremento para fazer junções; Para evitar campos de autoincremento duplicados, agora você não tem 1, mas 2 bloqueios de tabela por inserção.
InnoDB:com junções, o probem de pesquisa mencionado acima duplica
Se você fizer uma junção usando um campo que não seja o PK, o InnoDB precisa fazer uma pesquisa extra por junção para obter os registros dessa outra tabela.
InnoDB:o pior de tudo é que você perde o benefício de cobrir índices
Você desativou uma das melhores otimizações do InnoDB, cobrindo índices.
Se o MySQL pode resolver a consulta usando apenas os dados nos índices, ele nunca lerá a tabela, isso resultará em uma velocidade significativa ganho. Agora que 50% de cada índice no InnoDB é espaço não utilizado, você acabou de eliminar suas chances de usar essa otimização.
Por favor, derrote este empreiteiro com um bastão de pistas!

Links:
http://www.xaprb.com/blog/2006/07/04/how-to-exploit-mysql-index-optimizations/ (link lento, mas recomendo a leitura).
O'Reilly nos índices de cobertura do InnoDB http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB
BTW , se o seu contratante disser, não importa muito porque ele está usando o MyISAM, vença-o novamente, você deve sempre usar o InnoDB, a menos que tenha uma boa razão para não fazê-lo.
InnoDB é muito mais seguro em produção, o MyISAM tem seu usa, mas é corrompido com muita facilidade.