As far as I understood, the Bitcoin JSON-RPC is one of the ways (if
not the only way) in which applications can be built that can access
the bitcoin wallet.
There is also a REST interface, but that is for read-only type commands like getting blocks or transaction info.
So far, I have just figured our that only bitcoin-cli is such a local
application which uses the RPC.
bitcoin-cli is just a cli interface to the RPC, it doesn't really do anything on it's own. Also, the
RPC interface isn't just for wallet commands. A list of commands can be found in the documentation at https://bitcoincore.org/en/doc/0.16.2/. The commands expose functionality including:
Are there any other examples where the JSON-RPC is used?
Many software libraries will communicate with the Bitcoin Core
RPC, too many to list, but this might be a good start: https://github.com/igorbarinov/awesome-bitcoin. Not all use the Bitcoin core RPC, some implement their own full node (like copay).