How is Bitcoin truly decentralized?
For ease of use, there has to be one or more automatic peer discovery mechanisms. You have listed some of them.

There is also the -addnode command line option to bitcoind that allows the user to connect to specific node(s).

These mechanisms are specific to the current implementation of Bitcoin. The Bitcoin protocol does not specify any particular peer discovery mechanism. This allows the discovery mechanism to evolve over time, and for the truly paranoid, also allows manual peer specification.