The general advice I've always gotten is that if you're looking for well-executed Go idiom, the standard library is your first stop.
And while NewAES might predate this advice, NewGCM (which returns an opaque crypto.AEAD) does not.
And while NewAES might predate this advice, NewGCM (which returns an opaque crypto.AEAD) does not.