This is by design: Resolution of Collection or Map as a collection of individual beans is only supported for declarative injection points. Such resolution is ambiguous with beans which are of type Collection or Map themselves, and it's convoluted enough that we have to support this for annotation-based resolution still. For ObjectProvider usage and even more so for plain programmatic usage, the recommended way to access multiple beans is through the ObjectProvider's iteration/stream access operators, with the declared bean type always indicating the individual bean type to match.
In any case, we need to document this properly, so I'm turning this into a documentation ticket.
There's no way to access the bean names from an ObjectProvider is there? So there is no direct replacement in the functional approach? I guess there is always getBeansOfType(). I assume they didn't want to use that in Boot for some reason (see spring-projects/spring-boot#15419).