Is it okay for a dapp to be partially centralized, and if so, why?
Centralization means that you need to trust in somebody else other than the blockchain. In some cases this is okay. For example, you can have a backend that reads from the blockchain and creates a "cache" that enables your dapp to load faster. In that case, you're creating a central point, but it brings advantages for your application. Notice that you need to trust on the backend, but also if it is sync with the blockchain you can double check the data there.
So, it also depends on how your central point works:
- is it open sourced?
- the dapp will be able to work if your server is down?
- if your server or database is compromised how it would impact on your organization and your users?
Obviously, as everything in life, decentralization has its pros and cons. Sometimes you can achieve a better result with a centralized server, so it's your job to analyze your specific case and decide how it would work better.