Thankfully, we can easily call JavaScript functions from our Blazor server's C# code, see this MSDN page. The JavaScript code will be running on the client's browser and the C# code on the server, and Blazor's SignalR connection lies between these two.
But I'm asking for clarification on whether the SignalR connection is the one responsible for transmitting the function's input/output values back and forth between these two. The only hint that I could find is from a blog by Chris Sainty:
You'll have noticed that both methods are async. This is important because if you want your code to work in both client-side and server-side Blazor then all JS interop calls must be asynchronous due to the SignalR connection used by server-side Blazor.
Unfortunately, I couldn't find the exact information on how the values are transmitted on the MSDN page.
How the data is transmitted can be important in cases when there are data fetched via the JavaScript runtime (e.g. using Firebase Firestore JavaScript library). If the fetched data needs to be sent back to the Blazor server for it to push the required changes to the DOM, won't there be an extra round-trip?