Why can't the mobile app make json-rpc calls remotely to any LN node available? Preferably to a node which is closest to the mobile user's location or route?
To
any LN node, kinda not. You make RPC calls on computers you control. If you're searching for a mobile lightning wallet app that includes REST requests, check out
Zap.
When you tell to use the invoice RPC command, this is exactly the part I want to do through an API remotely, not by using the lightning-cli command on an LN node.
This precise command can be executed remotely by the github repository I linked you above in my other post.
If I configure 1 LN node with a grpc plugin, then I'm only sure that that specific LN node is running that plugin. This kind of forces me to only use that node or a cluster of nodes which I configured.
Again, you can use commands such as invoice, pay, getinfo etc., on nodes you control of. You can't just force someone do this for you, you do it individually on your node(s). Just as you enable server in Bitcoin Core and use credentials to execute commands remotely.
I do believe Bitcoin and Lightning are decentralised. But if only a part of the nodes support grpc calls through a plugin which needs to be installed by its admin, then the remaining part of the nodes become useless to apps requiring grpc.
Such as... which apps? Routing transactions and accomplishing payments does not require the installation of a plugin.