Icon or VaadinIcon in setItemIconProvider ?

More or less everywhere in Vaadin 14 an icon is an com.vaadin.flow.component.icon.Icon.
But in the setItemIconProvider method of a Tree the required value is a ValueProvider<T, VaadinIcon> and not a ValueProvider<T, Icon>; why ?
This makes difficult to use generic Icons or anything different from an enum value of VaadinIcon.
Going from VaadiIcon to Icon it’s easy but get back from Icon to VaadinIcon is more or less impossible.
I need to choose my icon dynamically.
How can I solve it ?

This is a good question. I made the Tree add-on using VaadinIcon as the Tree itself is using Template renderer, where I have iron-icon as html, where I add the correct Vaadin icon name. Using generic Icon would require a bit alternative logic here and it requires some thinking.