I just came back here a year later in an attempt to understand the @forge/bridge invokeRemote. Dealing with invokeRemote from a Custom UI is still incredibly painful due to the unclear and undocumented API contract.
I am trying to write an HTTP API client for my Connect remote and thought I could just plugin in invokeRemote from @forge/bridge or from @forge/api, but that does not work. @forge/bridge invokeRemote has GraphQL-like semantics, while @forge/api invokeRemote has close to fetch-like semantics, which makes reusing the same client or even the same API endpoint difficult.
I will probably establish an API between the Custom UI and Forge backend (using invoke) and only call my Connect remote through the Forge backend.