That's not correct.
First, it isn't true that only a few accounts decide where DHF funds go. If you look at the level of voting necessary to fund something, it is far more than a few accounts. It takes 29 million HP to fund anything, and the largest account is 15 million and it drops off quickly from there. There has never been a DHF proposal approved by only a few accounts and there likely never will. It is always a broad swath of stakeholders voting.
Second if you look at the where the DHF funds are going none of them support the or even benefit the largest stakeholders, with the possible exception of one that is supporting the SPK network (I'm not an expert on what this does and I don't vote for it). They're all supporting developers, community projects, or platform resources (such as Keychain or HiveSQL) in a very clear way. Notably, the largest voter (@blocktrades) probably also spends the most supporting the platform (including much of the core development, and running the servers), and hasn't even gotten funding from the DHF for it.
In no way is any of this self-voting. The necessity of DHF proposals to clear the hurdle of the return proposal makes self voting MUCH harder and less likely (and much, much less frequent in practice), compared to the post voting where self-voting or circle voting or vote trading is trivial, and only sometimes (rarely in practice) inhibited by downvotes.
I just skimmed through the voters on the active proposals and many of them are there because of votes from less than 10 accounts. Some of them might be there anyway due to attracting lots of smaller votes. I don't really have full data on the decentralisation of the proposal voting - I might add it to Hive Alive when I get time.
It's certainly true that my perception of the worker pool is based on information from earlier in Hive's journey - at that time it was exactly as I described, nothing got in without a small number of whales voting for it.