There is no guidance on it but as per my experience, We never rebooted the server in regular intervals. There are times when a reboot required.
install a update for SharePoint or windows which required reboot
install any add-on on the server which required reboot
if there is an issue with Server which required reboot...memory usage out of control, Http ...
So now the question is, do we really need to have a scheduled
"restart" to free up runaway processes or memory leaks?
Nope you don't need to restart your server just to free up runaway processes or memory leaks.
Recycling Application pool should do it for you. You might want to read this blog post,
[Set application pool recycling settings for better ...
I'm not aware of what the Best Practice is on this but we physically restart all of our SharePoint farms during our weekly maintenance window because in the past we've lost days troubleshooting errors that disappeared after a restart. Microsoft probably doesn't recommend it but I can tell you that it has helped us significantly.
Many of the 2007 systems I worked with years ago benefited from scheduled service restarts, though I seem to remember this being less of an issue after SP2. I would typically set the IIS Application Pool to recycle at a specified time. It wasn't a full restart of the server or any services.
In my opinion, it is a good practice if you can afford it, but it is not strictly necessary. I mean:
If you are using SQL Server with SharePoint, you should stop SharePoint services first. That WILL have a performance impact.
If you have a timeslot allowed for maintenance, reboot the machine once a month or every 2 months. Adjust this frequency along time ...