hello,
1- For this questions, its depend the situation that u have, for me for example, in same pipeline i have diferent dataset that use diferents database connections and its work well, however depend that rows u process, for example for different size its more
efficente build differente pipeline, one pipeline per each database its more efficent when u have heavy buffers.
2- the benefits to use a storage account its that u have a extra stage area, this can fix problem with time out, bad loads or loss of information u can put in this stage some controls, and when u use this area u have DF connect with Azure this is so fast
because the connection depends for azure services. However when u have a direct query with personal DB as source or destination u depend for this "personal" connection. make sense what i said?.
Storage dont works like a BCP, the reason for most effectivity its all source and destination depends for azure services, all its cloud.
i hope help you and sorry for my language.