Sharing and downloading routes done by others
Concerning sites where you can upload and share GPS tracks you could have a look at http://www.gpsies.com/. There are lots of GPS tracks for hiking, cycling, mountain biking, running, skating, horse riding,... you name it. The extended search allow to filter routes for the things you ask for, e.g.
- of course the type of activity you want to do – either roughly ("give me all activities by foot") or precisely ("give me hiking, jogging and nordic walking")
- distance from a certain point,
- distance covered,
- round trip or one way track
- characteristics (flat, hilly, mountainous)
- path quality (compacted, rough, smooth, rocky...)
- and some other...
The only option I couldn't was the question for a restaurant in the middle, however, if you narrow the choice down to some routes you might get away with reading their descriptions and looking into the map to see whether there is such a spot.
Planning own routes
For planing own routes you can consider http://www.wanderreitkarte.de/. They have a route editor where you can define a start and end point (and some points in between, if you like) and it will propose a route between those points that tries to keep away from big streets and prefers official hiking routes. Here you can also give some rough characteristics to search for, i.e. if you want it as flat as possible (and accept a longer route instead) or don't have a problem with some more ups and downs for the sake of a shorter distance.
Although you cannot explicitly ask for a round trip of a certain length, you can do this basically "by hand" by roughly defining some route points where start end end point are at the same spot and that are as the crow flies somewhat (10 to 20%) shorter than the desired route. The route that the engine proposes should then be roughly the distance you wanted. If not, then you can still nudge some of your way points around a bit to get a better fit.