@dirvine has answered this and I do agree with the points he listed.
This is the access control part I mentioned in the previous post.
You can’t & don’t need to protect your code.
You only need to encrypt the data in DB so others can only query your DB with proper decrypt key.
There is another way to handle dynamic content request :
Have a new Persona, call it BundlingManager.
It is a light weight vault, receive a request from client (call it AskingNode),
pass the request to user-defined code and then pass the result from user-defined code to client.
These BundlingManager / AskingNode provide another set of API for those traditional ICPs.
It will be much easier to to migrate those old apps / websites.
But this will bring back the centralized ICP.