I am sorry, but centralized network bootstrapping is a very well known issue and unsolved problem of decentralized networks.
http://ryandoyle.net/assets/papers/Distributed_Bootstrapping...
http://grothoff.org/christian/dasp2p.pdf
http://www.net.in.tum.de/fileadmin/TUM/NET/NET-2014-08-1/NET...
You say: "i.e. changing hardcoded bootstrapping data every N minutes, so new users could bootstrap from different nodes"
The fundamental issue is, changing the data where? The node who wants to connect to the peer network, obviously cannot obtain the information from the peer network itself (as node is not connected), so obtain the information from where? Currently, all decentralized applications, including my system Streembit use the techniques of obtaining the information from a centralized source - which is the oxymoron of decentralization. If a web services or other centralized applications provide the new node with the list of existing listening/connected nodes then the solution is surely not decentralized. Government agencies or cyber-criminals only need to attack the hard coded, listening seed nodes and then the network is done and never can be back again until a new list of hardcoded seed nodes is published via the application source code or via other channels.
As I said above, Satoshi's original idea to obtain the seed info from IRC was the closest to decentralization, but since IRC is centralized itself I am sure you can see how far that is from the a decentralized bootstrapping.
We have the solutions on local decentralized networks such as mDNS and UDP multicasting which uses protocol level solutions, and we are investigating to solve the problem at Streembit with IPv6 anycasting.
<<< A bigger problem is how software is developed. The development itself is centralized, but even worse >>>
I disagree. Open source software can be forked and then you can adopt as much democratic development methods and governance as you want.