What I see you are trying to say is that by keeping the code secret one gains a temporary advantage over the competition. That might be true. But this is the way of thinking coming from the proprietary software philosophy. How much will I loose by making the software free? If this is your line of thinking, then maybe writing free software is not what you want to do.
Because at the core of the free software movement is a believe, that sharing the code would make the world better. Free software is not here to make us rich. Is not here to make our software easy to (ab)use by business. It is here to preserve out freedoms. It represent an ethical view that sharing knowledge is more important than making money. If you don't agree with that, then the free software is probably not for you. Everyone writing free software should understand that the old business models of proprietary software based on secrecy doesn't apply here. The value is in the collaborative effort to improve the shared code. It shouldn't bother you when somebody else builds on your code and gets ahead of you in terms of features, because this is what you wanted when you decided to write the free software! Instead of complaining that this puts you out of the business you should rather seek for opportunities to collaborate and write more code together which would be good for the business too. And if you want to compete, compete in solving new problems (not the ones that have been already solved, there is no need to duplicate the works of others) and charge your customers for doing that. Now, don't get me wrong. I admit it is not as easy to build a business around the free software as it is in case of proprietary software. But it is not impossible or even especially hard. And is much more fun. This is why we shouldn't give up trying new ways just because they are different to what we know from the proprietary world. On the rise of cloud platforms I see future for the AGPL too.