What is the proof that visibility graphs can be used to compute the shortest path?
I think the first proof was given in Der-Tsai's 1978 thesis on pages 111-113.


  With the above result it is immediate to realize that the shortest
  path problem with line segments as obstacles can be solved by first
  constructing the graph G=(V,E), called visibility graph, where V
  consists of the two distinguished points and the set of 2N endpoints
  of the given N line segments, E is the set of edges each of which
  connects two vertices i and j of V without intersecting any obstacle
  except possibly at the endpoints (i and j are visible according to Definition 4.2); and the weight
  associated with each edge (i,j) of E is the Euclidean distance between
  points i and j; and then applying a well known shortest path algorithm
  to G.


However this is only for with line segments as obstacles, not polygons as obstacles.