The problem is two-fold, and you're going to have to fight both issues:
For the child . . .
First, you need to ascertain FOR CERTAIN whether there's a bully-type reason he's doing these things. If someone else is demanding the food from him, you need to deal with that issue. However, since the problem has been going on for five years, I find that difficult to believe. He's not in the same classes, on the same busses, etc., so the kids in his life have certainly changed over the year -- yet this issue has remained problematic. That makes me think it's a him-thing, not problems with another kid.
If, as seems most likely, this is just bad behavior, you need to stomp it out. First, tell him that buying lunch is a thing of the past. He cannot handle the responsbility, so the privledge is gone. He doesn't grasp the idea of moderation, so he cannot be trusted to go through the line. Tell him you'll make sure he has a good bag lunch every day (put something "good" in every day -- not just PB&J and carrot sticks day after day), and that he is absolutely forbidden to buy lunch.
Next, you need punishment. What does he care about? TV? His bike? Time with friends? Set up the rules, and if he breaks them, he looses whatever you decide is appropriate. Or have him do extra work around the house to earn back the extra money he's wasted. No letting up before the punishment is done. No relenting for promises of "never again". Nothing. The punishment is what the punishment is. Usually when there's a big issue like this -- and especially when the problem has gone on for five years and has become ingrained -- things get worse before they get better. The child will test you. If you want this problem to end, you must be firm with him, put your foot down, and make the problem stop.
Now, about the school . . .
They are not the instigator of the problem, but they certainly aren't working with you to stop the issue. I would set up a meeting with the cafeteria manager, the classroom teacher, and the principal. Go over what's happened over the course of the situation. Explain that you've requested that his lunch account be closed. Explain that the child IS being fed breakfast at home, and he IS bringing a bag lunch. Tell them that you absolutley forbid him to purchase ANYTHING from the cafeteria, not even a carton of milk. Tell them that if he "forgets" his lunch, he can go hungry for a day -- missing one meal won't hurt him, but it might help him remember next time (or not throw it away next time). Tell them that you will NOT pay for any food that is given to him from the cafeteria. Give this to them in writing. The next day, mail a letter to all three (via certified mail) saying, "This is a follow-up to our conversation yesterday, just reminding you that I will not pay . . . ". Document the date and time of your meeting.
Give it a couple weeks. If they refuse to work with you, to go the county office. Explain to them the steps you've gone through to stop this problem. I'd be surprised if they didn't help you, but if they don't, go to the school board.
Right now your son is bullying YOU through this behavior, and the school is aiding him. You can stop this, but it probably won't be easy or pleasant. However, if you don't stop it in elementary school, you will have very little chance of doing so in middle or high school. Once they reach those ages, the kids have many more choices for lunch and much more freedom. If your son doesn't learn to use moderation NOW, he will probably "go wild" in the older grades -- and possibly in more dangerous ways than overbuying of school lunches.