Hi Thomas,
sorry I'm having a bit of difficulty parsing your exact usage and questions, I'll answer the best I can but will also ask for clarification along the way.
"Distributed actors" are not a framework per se, but a language feature that enables "bring your own" actor system implementation that then is responsible for all the runtime things -- specifically, how networking is done. So all your bandwidth questions are going to be specific to which exact actor system implementation you are using.
So you say you're using the TicTacFish system implementation -- it should be noted that that implementation is VERY "toy example". We never spent any time optimizing it, it's just an "hey, you could build a system like this!" example, so I would not recommend using it directly -- but instead using it as inspiration to build your own, more optimized system. The general networking will likely be the same, but I'm sure there is a lot of room for optimization.
It's hard to know what exactly this means -- sending updates per frame is likely going to have huge overhead, since the requests include mangled names of targets, so even if sending around two integers with positions... the system would also keep serializing a large string with the invocation target -- you should measure this yourself by exploring the actor system. This is possible to optimize, sending the target string only once etc, but again, the TicTacFish example never explored optimization angles.
I'm also unsure about the frequency of updates you're actually doing and what you actually have to keep synchronizing or not. It seems suspicious to me that you mention frame rate, do you really send updates per frame, that seems wasteful?
I guess this is a longwinded way to say that I don't know what you're measuring or if your system of sending updates is actually efficient to begin with or not etc. I recommend diving deeper into the system and measuring payloads and times of rendering json etc -- and optimizing accordingly. I'd be happy to provide hints if you hit specific issues, but from this writeup it's hard to even pinpoint what we need to be optimizing: your sync algorithms, serialization, amount of traffic, [...]?
Same as above, I can't know what this means really without you explaining more about your sync architecture. Are you literarily fanning out updates per frame to every client connected to the game? This probably would keep growing traffic exponentially, sure - regardless of specific transport employed.
You have exactly as much power with distributed actors, because you can implement all of the networking yourself -- and distributed actors are just a language feature that allows expressing RPC calls as nice looking swift methods really. If you want to optimize for speed and game situations, you really should be looking at implementing your system, rather than using the un-optimized TicTacFish example system. This is a feature of the distributed language feature, that anyone can implement any specialized actor system they want, in the absence of one that suits their specific needs.
It would be fantastic to collaborate on a local networking "game" focused open source system implementation
The best documentation of how things fit together are the Swift Evolution proposals, and the API docs on DistributedActorSystem, if you're not sure about anything please let me know -- and we'd like to include more/better docs in the Swift book as well.
The cluster package is not really designed for local network -- it is designed for datacenters, and is very "chatty" for health monitoring of the peer nodes --(it uses a SWIM failure detector) while it may work, I would not recommend using it on devices -- your best bet is customizing the bonjour example system to suit your needs IMHO.
This doesn't exist today; More efficient synchronization systems using e.g. CRDTs are something that we're interested in but it would NOT replace distributed func calls but simply be another API, that happens to be implemented using distributed actors.
Distributed funcs and actors are specifically "just RPC", and it makes building other distributed systems much simpler, but it is not like "distributed actor" automatically "distributes state".
In your case I think bonjour will be the right thing honestly, but just spending some time on measuring and optimizing. The sample system from the talk just isn't meant for production and that's expected.
The best way forward with distributed actors is to start working on open source packages which implement the specific situations you're looking for and this way we'll get a nice ecosystem of actor system implementations. I can't comment on any official plans with shipping or not shipping some system implementations, though either way open source packages is the way to go here!
For example, Ordo One have designed an implementation suited for their needs over here -- it's also for server clusters though so won't be suited for your use case. But that's the general idea -- specialized implementations as open source packages and then communities can benefit from them 
Again those questions are not really actor specific -- it depends what and where you're sending. If you're doing everyone-to-everyone sending all updates then sure, it will be inefficient like this. The up vs down also doesn't have much to do with actors themselfes but with the size of payloads youre putting on the wire -- sure, the sample impl isn't efficient in it's framing, but it still would depend the most on what you're sending around as payloads, and how often etc...
I hope this helps adjust the mindset and maybe we can measure in detail the message sizes you're sending around, frequency, and figure out if your overall design okey or needs tweaking. If you find that you have to optimize the RPC sizes specifically, I can help with that, but if it's around architecting state sync you'll have to think about it a bit yourself I guess? I'm happy to chat more but we'll need more details 