I think the issue conceptually with using a polygon as the observer features is pinning down what visibility means from a polygon. With a line visibility is conducted from the vertices along that line - how would you translate this analysis to a polygon? Would you consider visibilty only along the edge of the polygon? or is it the center? or perhaps visibility would conducted from an evently spaced grid of points within the polygon? I think the results of that analysis might be ambiguous at best, and so you are probably better off sticking with specific points or a polyline that is constructed to reflect what you want the visibility to consider. This is something you could script or model (create a grid of points at some density with the fishnet tool, or perhaps the create random points tool, iterate through those and accumulate the visibilty results into a final visibility raster), it just depends on how you conceptulize what a visibility raster like this would mean.