I have been studying the Go SDK for the past few weeks to use it for administrative tasks, since the Node SDK does not support them anymore. Now to answer your questions:
1) You can do it both ways, the CLI and the SDK are both interoperable. I believe the only thing that is CLI-only is the creation of genesis blocks using configtxgen, which AFAIK is not supported by any SDK.
Bruno Andreghetti @ GoLedger