This is due to a heuristic in map here:
https://github.com/JuliaLang/julia/blob/7c45ff0e94d394911e26d851d33a611d4ac256a6/base/tuple.jl#L222
which is there to avoid overspecialization. Note that this has been increased to 32 in 1.7, so your example should be type stable in the next Julia release.