a) Why can't the client be improved to the point where it is at least comparable with big miners? 1 coin per month is Ok. If user's system doesn't support GPU code - don't use CPU for that or warn him.
GPU mining code in the default client is an incredible mess. There are many algorithms tuned for different cards, and one has to support different versions of OpenCL and CUDA for different operating systems, making it unmaintainable and pulling in tons of dependencies. This is much better done in specialized packages, those will be better at it anyway.
1 BTC / month currently corresponds to 256 Mhash/s. There are no CPU's that can do that, and only a few GPU's can.
b) Isn't coin generation random? So there is a chance, however small, that an ordinary user will generate new coins?
Yes, but at some point it's just not worth it.
c) Isn't several big miners, instead of numerous independent clients, pose a greater risk and can manipulate and control bitcoin? What if in the nearest future there will be like 2-3 really big guys, like VISA and MasterCard and they will control 95% of block generation? Wouldn't this make bitcoin a new PayPal, instead of truly independent currency?
Maybe, but that does not mean we want tons of people burning electricity for almost no additional strength to the network.