[General Questions and Answers] ipdev:
Hi. :)

Took longer than I thought it would.

Nice rabbit hole you found. ;)

My Pixel 5 is completely stock.

Use it for testing and never set it up more than I had to.

It was on October's build.

I took a look and yes, fastboot (bootloader) and fastbootd (fastboot) will not allow you to change slots with a locked bootloader.

[ip@lost ip]$ fastboot getvar current-slot
current-slot: a
Finished. Total time: 0.014s
[ip@lost ip]$ fastboot set_active b
Setting current slot to 'b' FAILED (remote: 'Fastboot command (set_active:) is not allowed when locked')
fastboot: error: Command failed
[ip@lost ip]$ fastboot reboot fastboot
Rebooting into fastboot OKAY [ 0.015s]
< waiting for any device >
Finished. Total time: 6.374s
[ip@lost ip]$
[ip@lost ip]$ fastboot getvar current-slot
current-slot: a
Finished. Total time: 0.002s
[ip@lost ip]$ fastboot set_active b
Setting current slot to 'b' FAILED (remote: 'set_active command is not allowed on locked devices')
fastboot: error: Command failed
[ip@lost ip]$

I was not able to toggle Bootloader unlock under Developer options.

WTF? I bought it from Google for that reason!

I downloaded the factory OTA (since fastboot is limited by the locked bootloader) and updated to April's build.

Updated using the adb sideload option in stock recovery.

Once the update was done and I rebooted into system, the bootloader unlock option was now available under Developer options. :D

So..

Interesting what changed running fastboot oem citadel state.

The first time I ran it. (oem toggle greyed out/not available)

[ip@lost ip]$ fastboot oem citadel state
(bootloader) Citadel state:
(bootloader) Version : 1
(bootloader) Bootloader state: 1
(bootloader) Production state: 1
(bootloader) Number of locks : 4
(bootloader)	Lock[0]: 1
(bootloader)	Lock[1]: 1
(bootloader)	Lock[2]: 1
(bootloader)	Lock[3]: 0
OKAY [ 0.086s]
Finished. Total time: 0.086s
[ip@lost ip]$

The second time. (after update and oem unlock toggled on.)

[ip@lost ip]$ fastboot oem citadel state
(bootloader) Citadel state:
(bootloader) Version : 1
(bootloader) Bootloader state: 1
(bootloader) Production state: 1
(bootloader) Number of locks : 4
(bootloader)	Lock[0]: 0
(bootloader)	Lock[1]: 0
(bootloader)	Lock[2]: 1
(bootloader)	Lock[3]: 0
OKAY [ 0.019s]
Finished. Total time: 0.019s
[ip@lost ip]$

The third time. (oem toggle off again.)

[ip@lost ip]$ fastboot oem citadel state
(bootloader) Citadel state:
(bootloader) Version : 1
(bootloader) Bootloader state: 1
(bootloader) Production state: 1
(bootloader) Number of locks : 4
(bootloader)	Lock[0]: 0
(bootloader)	Lock[1]: 1
(bootloader)	Lock[2]: 1
(bootloader)	Lock[3]: 0
OKAY [ 0.023s]
Finished. Total time: 0.023s
[ip@lost ip]$

The fourth time. (oem toggle on again.)

[ip@lost ip]$ fastboot oem citadel state
(bootloader) Citadel state:
(bootloader) Version : 1
(bootloader) Bootloader state: 1
(bootloader) Production state: 1
(bootloader) Number of locks : 4
(bootloader)	Lock[0]: 0
(bootloader)	Lock[1]: 0
(bootloader)	Lock[2]: 1
(bootloader)	Lock[3]: 0
OKAY [ 0.020s]
Finished. Total time: 0.020s
[ip@lost ip]$

Did a quick check on my Pixel 4a.

Stock Google with a fully unlocked bootloader

[ip@lost ip]$ fastboot oem citadel state
(bootloader) Citadel state:
(bootloader) Version : 1
(bootloader) Bootloader state: 1
(bootloader) Production state: 1
(bootloader) Number of locks : 4
(bootloader)	Lock[0]: 0
(bootloader)	Lock[1]: 0
(bootloader)	Lock[2]: 0
(bootloader)	Lock[3]: 0
OKAY [ 0.023s]
Finished. Total time: 0.023s
[ip@lost ip]$

So I would guess..

Lock0 is the option to toggle OEM unlock.

Lock1 is toggling on/off OEM unlock.

Lock2 is actually an unlocked bootloader.

Lock3 is ??????????

Hope it helps more than confuse. ;)

Cheers. :cowboy: