Microsoft support have discovered the reason.
Besides being peered with a number of regular BGP-over-IPsec peers, the same VPN Gateway of mine was also used to establish BGP-over-IPsec-over-ExpressRoute connections with on-premises routers, a setup described in the "Configure a Site-to-Site VPN connection over ExpressRoute private peering" article.
Such setup requires ExpressRoute Gateway to be deployed in the same GatewaySubnet
of the same VNET as the VPN Gateway. The ExpressRoute Gateway comes with non-modifiable ASN 65515
and its instances establish BGP peerings with instances of the VPN Gateway.
But Virtual WAN also comes with the same ASN 65515
, which also cannot be changed. So a conflict arose, which prevented (not exactly clear why) the routes learned by the VPN Gateway to be propagated to the VNETs using it.
As soon as I removed the ExpressRoute Gateway, the problem disappeared. (Just disconnecting it from the ExpressRoute circuit wasn't enough, as it still continued to advertise its own addresses with ASN 65515
).
As a workaround, I simply set up the ExpressRoute connectivity via the Virtual WAN - deployed an ExpressRoute Gateway, connected it to my circuit (the Authorizations mechanism allows easily doing so across tenants) and established IPsec tunnels over it to the site-to-site VPN Gateway of the same WAN Hub. No ASN conflict arises in this case.
The architecture is outlined at "ExpressRoute encryption: IPsec over ExpressRoute for Virtual WAN".