It's a substandard way to implement distributed computing, because:
- it assumes you and the remote end are in lockstep which is hard to guarantee at scale;
- if you and your remote end are not in lockstep you get weird hangs in your program because you are pretending code is on your machine when it's not;
- an infrastructure must exist to make sure you are calling the remote code you intend, including things like component registration, etc. and for the amount of work required to make that work well, you might as well write a TCP/IP server. With TLS and other authentication mechanisms, current CPU speeds and JSON and HTTP becoming de facto messaging formats you might as well use all of that for remote API access instead of literally trying to send what's pretty much raw function calls over a wire.