I don’t know where to find the proper documentation, but in any case, the default is to give up inference if the number of methods exceeds 3.
I think it is better to annotate manually the return type for this case.
Perhaps the order of the surfaces does not matter unless the distances are exactly the same, so grouping or filtering by the type is also another option. However, in this case, I do not think it is very effective in terms of performance.
Of course, there are many other measures, but that would be a discussion of total performance and should be in a separate topic.