AFAIK blaze is also somewhat heavy on templates, but maybe it uses more modern metaprogramming techniques.
Compile times and binary sizes :(
Aaaand debug times. And profiling. I'd forgotten the joys of debugging/tracing heavily templated code before I jumped back into Eigen. Not that MKL was easier to debug but nowadays most of oneapi is open-source, at least the parts I use?