I agree that at first this appears to make no sense. But there are actually good reasons for it, when you dig in. I work on a DLT/blockchain platform that has customers going live like this, so I'm closer to it than most people are.

This is a little like how I used to not understand why banks or other large firms cared about blockchains at all - isn't the point to get rid of them? Then it became clear that the problem of individuals trying to sync views of balances over the internet without powerful middlemen is a scaled down (or up) instance of a more general problem that lots of firms have between themselves, trying to sync data between organisations. And that this is a legitimate problem to want to solve with peer to peer technologies.

The main reasons you see companies deploying "blockchain but we control all the nodes" - an apparently nonsensical setup - are twofold:

1. They do want the ability for other orgs to run nodes in their blockchain network, or rather, some of their customers want the ability to run their own nodes and rely on the centralised firm less. But many customers don't care. They prefer to trust a centralised authority, at least given the current state of technology. Therefore, firms want the ability to decentralise selectively in response to demand.

2. They're doing a tech refresh. The world is full of financial middlemen who have platforms decades old that have been incrementally patched and upgraded over time, often with lots of customers. They decide it's time to do a rebuild onto more modern tech, but they can't justify a from-scratch rewrite unless there is a significant difference that can't just be bolted on to the existing architecture. Decentralisation is an example of such a change. By betting on blockchain tech now, they open up the possibility of totally new business arrangements in future that would have been blocked by centralisation/lock-in fears today.

If you decide to make your existing business app selectively decentralisable - perhaps in order to unlock new features or products in an environment where customers are concerned about data sharing - then it makes sense that you'd maintain one platform, run all the nodes yourself and migrate users to it in bulk. You've opened up new options for yourself and if later the business winds change and you don't want to allow this anymore, OK, you have a slightly more complex architecture than a plain old SQL DB but modern DLT systems like Corda (the one I work on) map blockchain data through to relational databases anyway so you can still use a lot of the same tools and processes that you're used to. It's not quite such a huge leap as it'd have once have been.

Why might some customers not want to be decentralised? A situation we see a lot is where a business or industry group wants to allow people to run their own nodes, but isn't sure the usability of taking part in a P2P network is high enough for everyone (or are sure it isn't). Remember that many businesses have very small or sclerotic IT departments, or no IT department at all, and peer to peer networks are historically associated with piracy, viruses, spam etc. So that + the prevalence of the web means that setting up anything that isn't HTTP to port 80, like a business P2P node, is considered to be a bit novel and exotic.

Again, because Corda is designed for large firms it has features that help with this, in particular for really large and paranoid firms like banks where the internal IT departments don't always trust each other :) But ultimately if you're trying to pull off a major platform migration, you don't want it to hit the rocks if some users reject the idea of running local infrastructure and just want an ordinary web app.

This exact problem is prevalent in the Bitcoin and Ethereum communities too. Many users don't run nodes or even SPV wallets. They just dump all their coins on an exchange and trust a centralised service completely. They could go full P2P but that involves small sacrifices like having to back up your private keys, so they choose centralised trust instead. The nice thing about cryptocurrencies is users can choose their own configuration.

As a consequence of all this, a popular feature request for Corda and something we're spending a lot of time thinking about is how to split a node up, so parts of a node run in some cloud somewhere, and other parts run locally on e.g. a mobile or desktop app. For instance private keys and transaction signing could be done locally, with everything else run remotely - this is "share the my data but not my authority". In more advanced setups you allow people to migrate from hosted nodes to local nodes and back again in smooth automated ways.