Maybe it would be possible to cache submodules? It's unlikely to change.
(benchmark 10 '(projectile-dir-files-alien (projectile-acquire-root)))
Elapsed time: 1.390224s
(setq projectile-git-submodule-command nil)
(benchmark 10 '(projectile-dir-files-alien (projectile-acquire-root)))
Elapsed time: 0.254603s
Maybe it would be possible to cache submodules? It's unlikely to change.