The primary value of internship programs is as an extended interview and hiring pipeline for the continuous flow of new-grad-level engineers required to keep the company healthy as it's existing employees either eventually depart or move up the ranks.
Intern programs also are potent tools for growing a company's reputation.
Out of 10 interns, I feel like you've got maybe 1 or 2 that are really good. These people have maybe had a previous job or coded open source. You can tell them what you need, and help them out a bit. They will get not only one but maybe a couple of different projects finished.
Half maybe are people that you will really need to watch over. Talking with them every day and checking in on their code to make sure they are doing things well. If you don't watch over them, you are very likely to have to throw out what they do.
The rest are hopeless. They might not even regularly show up or get anything done.
And of course, for the first week, everything is hopeless ramp-up time. You only get a real idea of their productivity after a month or so. Then they have maybe another couple of months before they go back. Given the amount of time you have to put in, it's not a great investment. But it is a great way to find people to hire later on.
And after training them for a few years, they start to create value.
They can also be assigned useless busy work, it's always a gamble and varies entirely by their capabilities and skills, as well as who is managing them.
I have seen people relying on interns and it’s not a good business idea in my opinion.
Does everything have to be in the service of profits?
Without interns our hiring pipeline would be insufficient for our needs. With interns we get some training time etc.