Most people buy chickens to have fresh eggs and that is great but it's also causes this issue. Since consumers want hens hatcheries offer a chick sexing service to give us what we want. That leaves them with surplus roos and something has to be done with them. So I guess you could say that consumers are to blame for this, if hatcheries only sold str. run chicks this really wouldn't be a problem. Since some people cant have roos due to local ordinances or just don't want to have to deal with all the extra roos they order mainly pullets. Its this convenience that creates the problem, hatcheries can only sell what we buy. Just remember that for every sexed chick we buy a cockerel will probably meet an early death.
Could hatcheries find a better use for all the leftovers? Who knows unless someone with firsthand knowledge of what happens to the surplus roos chimes in about how they are disposed of i really couldn't say. I imagine the method they use is whatever is cheapest and most convenient, not good if your a rooster either way. Considering the vast amount of chicks hatched by hatcheries every week in this country it has to be a considerable number of roos that don't make it out alive. Hopefully some hatcheries donate to zoos, animal rescues and stuff like that.
I know ideal poultry sends extra roos with orders (packing peanuts) and i would say that probably helps with the amount of extras they have to deal with every week. I have read where people complained about getting all the extras and i cant say i would be really happy receiving a bunch of roos. What do you expect them to do with them its either destroy them or send them out to maybe have a chance at a life even if it will be short lived at least someone will get some use from them if they are eaten. It could go either way though many might think its irresponsible for them to send out extras if people didn't order them but again its not really my call. All i can say is if you don't like the practices that hatcheries use buy from local breeders or at the very least buy str. run.