Basicamente my.cnf é um arquivo de configuração para múltiplos aspectos do MySQL, incluindo o daemon / servidor, o cliente, as versões do modo de segurança de cada um, etc.
Alguns programas pegam diretivas de configuração de vários grupos.
Assim, por exemplo, a diretiva bind-address é relevante apenas para o daemon / servidor porque é a única coisa que precisa se ligar a um endereço, como tal que a diretiva pertence apenas ao [mysqld] ou [server] Seções. Quando você inicia o servidor, ele não vê nada na seção [client] e, quando você inicia o cliente, a diretiva bind-address não é relevante.
A razão pela qual a documentação lhe diz que o escopo my.cnf é global é porque é, todos os programas na suíte MySQL podem / irão procurar naquele arquivo por opções.
Então, se você pensar nisso menos como "seções" da configuração e mais como vários arquivos de configuração em um, isso pode fazer um pouco mais de sentido. Ao decidir o que colocar onde você simplesmente precisa pensar sobre qual aspecto do mysql você está tentando definir opções. O servidor? O cliente? Somente modo de segurança?
Então, para responder à sua pergunta na forma de resumo, "O que deve ir aonde?" - Coloque opções relevantes para determinados programas na seção que se aplica a esse programa.
mysql --help
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf The following groups are read: mysql client
Para ler mais:
Opções do Servidor MySQL (e as seções que você pode usar para defini-las )
Usando arquivos de opções do MySQL (visão geral sobre my.cnf)