Believe that would be a very good start...
Just a brain storm, but I believe lots of side issues can be resolved by ensuring that companies are allowed a maximum staff of 1000 people (or a similarly fairly low limit) and can't own other companies. This will take care of issue 8 in your list as well and might be a resolution to issue 1 not providing enough diversity.
Having such a restriction will ensure:
- Real competition; companies can't now just grow market share by absorbing other companies.
- Increase in productivity through efficiency; since corporations can't just throw more people at a problem, this means that the only way to gain a competitive edge is to train staff and to become more efficient. This will also mean that corporations will become specialists in only a limited number of areas, since they can't have enough staff to be a specialist in all areas.
- Standardisation; some products may need more than 1000 staff to produce, which will decrease the number of companies that have complete end to end production lines (with only small components delivered by other companies). This means these companies need to start even more relying on parts produced by other companies, which increases the need for standardisation to be able to compete. The companies sourcing parts are not able to monopolise one complete part supply line, due the the restricted size in staff.
- Economic growth; because of the limit in the number of staff, there is more money flowing between different corporations, since more companies will need the services and products of other companies to be able to operate. The size of an economy is the amount of money in an economy multiplied by the rate at which the money flows through an economy.
This will also reduce issues like corruption and buying votes somewhat, since corporations will have a limited size and lobbying capability.
Maybe 1000 staff is even a too high a number...