Your problem is that
getnewaddress actually takes TWO arguments... the first is "label"... and the
second one is "address_type"
getnewaddress ( "label" "address_type" )
Returns a new Bitcoin address for receiving payments.
If 'label' is specified, it is added to the address book
so payments received with the address will be associated with 'label'.
Arguments:
1. label (string, optional, default="") The label name for the address to be linked to. It can also be set to the empty string "" to represent the default label. The label does not need to exist, it will be created if there is no label by the given name.
2. address_type (string, optional, default=set by -addresstype) The address type to use. Options are "legacy", "p2sh-segwit", and "bech32".
So, what you have done is generate a bunch of the "default type" addresses and
labelled them "bech32" and "legacy" and "p2sh-segwit".
If you have a look in your "Window -> Receiving Addresses" list, you'll see a bunch of addresses with those labels!
NOTE: while it says "label" is
optional, that really means you just don't need to populate it and can use an empty string ie. "". BUT if you're going to include arguments AFTER it, it still needs to be specified. You need to use the "address_type", so you MUST specify the label. This means that if you want to generate new addresses on the console you need to use:
getnewaddress "" "p2sh-segwit"
getnewaddress "" "bech32"
getnewaddress "" "legacy"
NOTE2: setting the value in .conf file simply sets the
default "address_type" that will be used if you don't specify anything when using
getnewaddress command. You can still override that (ie. have address_type=bech32 in .conf, but use
getnewaddress "" "legacy" on the console)