As tabelas personalizadas podem simplificar seu código, melhorar o desempenho e ajudar a evitar conflitos com as alterações no esquema do WordPress no futuro. Não hesite em usar um, se precisar.
A complexidade extra vem de dois outros fatores: manutenção e multisite.
Manutenção : backups manuais ou automáticos podem omitir tabelas personalizadas, portanto, há um pequeno risco de que os dados nas tabelas personalizadas sejam perdidos. Isso é algo que cabe ao administrador desses sites, mas não faz mal apontar isso na sua página readme.txt
e do plug-in.
Multisite : Se você adicionar uma tabela personalizada no site principal de uma rede, não há como detectar por código se essa tabela deve ser uma tabela de rede (como as tabelas de usuários) ou uma tabela de sites (como a tabela de posts). O esquema de nomenclatura do WordPress simplesmente não oferece uma distinção. Este é um problema quando você deseja duplicar um site em uma rede por código. Então, novamente, seus dados podem se perder durante esse processo.
Não há muito o que você pode fazer sobre isso. Alguns plug-ins de clonagem oferecem ganchos para incluir tabelas customizadas. Você precisa adicionar suporte para esses ganchos no seu código. Então, neste caso, a complexidade extra está do seu lado.