STM32 I2C slave mode address left shift

There is one difference. Your examples does bit shifting automatically and Mbed does not and must be done manually. That is not a bug because it is functional and working like that for many years (longer than a Zephyr exist).

Address is always bit-shifted by user in Mbed, as I wrote. The value 0xA0 in I2CSlave example is 0x50 already bit shifted address.

I already did it two years ago. I had Nucleo-F303R8 with Mbed(6.2) I2CSlave example connected to Raspbery PI - here. I used exactly same example as above and again it works as expected. RPI saw 0x50 that is 0xA0.

You placed this to section Bugs but that is better for Feature requests, because that is not a bug, it was a decision of developers. But best place for that is ARMmbed/mbed-os: Arm Mbed OS is a platform operating system designed for the internet of things (github.com) than here on community forum.

BR, Jan