In the context of the UC framework, what is the border between an ideal functionality and a protocol?
It seems to me that it depends on the level of granularity required for proofs.
For example, the same protocol ${\Pi}_{1}$ may be described in more than one way:
${\Pi}_{1}$ requires parties to interact just with one ideal functionality ${F}_{2}$.
${\Pi}_{1}$ requires parties to interact with another protocol ${\Pi}_{2}$, that is equivalent to ${F}_{2}$, but it is explicit that it requires parties to interact with ideal functionalities ${F}_{3}$, ${F}_{4}$, ${F}_{5}$.
The only difference between the two cases is how detailed is the description of what ${\Pi}_{1}$ does. So, in general, ideal functionalities are a kind of terminal nodes in a graph of dependencies.
Does it make sense?