Rosenthal et al., № 199.3.2:
В выражениях на почте, на заводе, на фабрике, на стадионе употребление предлога на объясняется тем, что первоначально понятия «почта», «завод», «фабрика», «стадион» не связывались с представлением о помещении или здании: почта когда-то была на почтовой станции, на которой содержали ямщиков и держали лошадей; завод, фабрика, стадион могли занимать открытую территорию и состоять из нескольких сооружений (ср.: в мастерской, в цехе, в спортзале связывалось с представлением о закрытом помещении). Употребляются сочетания: на избирательном участке, но: в полицейском участке, на полевом стане, но устарелое: в военном стане, в агитпункте, но: на наблюдательном пункте.
In other words, the rule is ad hoc, you should just learn the correct preposition in the edge cases.
Note that those two prepositions may be used interchangeably in some constructs, like на / в кухне which you have mentioned, and several others.
This graph shows how the usage varied in time:

i. e. в кухне prevailed between 1860 and 1930; на кухне after that time.
Argots use non-standard prepositions in phrases like на тюрьме, на больнице etc.