Do I need to add the google maps library in the <head> section?

No, the library is automatically and asynchronously loaded when needed.

May I use ng-show / ng-hide on maps?

Yes, ng-show / ng-hide expressions are watched and when maps are visible, a resize event is trigged to force maps refresh and avoid partial grey area.

How to toogle between a Map and its StreetView?

As usual:

How to attach a StreetViewPanorama to a Map?

Use the gm-then attribute to get the google objects and to use their native methods.

Since version 2.0, I got a infdig error?

options object is now watched to update the google object using the setOptions function.
This new feature disable the possibility to use this kind of code:

<marker options="{position:map.getCenter()}"></marker>

You need to update to:

<marker position="map.getCenter()" options="{...}"></marker>

Else, you'll get the Infinite $digest Loop error.