You will need some hard checkpoints. In my opinion, a widely disbursed and actively staked coin does not need a checkpoint server. So the centralization would come from the source code, just like the protocol rules do for every coin.
Sorry you would not know who to trust. Votes can be Sybil attacked. You can't use the block chain to determine who is not a Sybil, because the block chain itself can be a mirage when you are trying to sync.
PoS is self-referential. There is nothing you can do to solve that. That is why it is always centralized.
If you mean the source code can be the centralized repository for checkpoints, then yes of course I agree but only to the extent it can upgraded frequently enough. Isn't that just another way of saying "a centralized checkpoint server". PoW doesn't require this. PoS does.
Sorry I don't want to discuss about this more, because it is not interesting. We experts have long since realized trustless, decentralization is impossible for PoS. Perhaps the only plausible fix might be a Web of Trust, but even these can be gamed:
Unfortunately, altruism-prime cannot be relied on exclusively, because the value of coins arising from protocol integrity is a public good and will thus be undersupplied (eg. if there are 1000 stakeholders, and each of their activity has a 1% chance of being pivotal in contributing to a successful attack that will knock coin value down to zero, then each stakeholder will accept a bribe equal to only 1% of their holdings).
Many people like to think this is only academic point and not really relevant in reality or practice. I think the Ethereum hard fork proves they are wrong.
Besides PoS (even DPoS) has scaling problems that can only be solved with PoW, which I will soon demonstrate. That will be the final nail in the PoS coffin.