What is the difference between "working at a restaurant" & "working in a restaurant" ?
Sometime there isn't a difference--at least, not all speakers would consider there to be a difference in meaning. If there were an easy and straight forward answer, it would be Location and Action. For example, I work at Spiro's (Location) in the kitchen (Action). Consider:
 I am at the restaurant. <emphasis is on where I am>
 I am in the restaurant. <emphasis is on what I am doing>
 I am at the restaurant, now, waiting in the restaurant.