That is more or less the settings I would have expected to see based on your previous replies.
The only change, maybe… I’ve never used WC before, but I’m fairly certain the default role given to a user is “Customer” regardless of the default role set with WordPress > Settings > General > New User Default Role. So, you could, if you wanted set the New User Default Role to Subscriber so you would not have to change the role from Customer to Subscriber unless your “My Account” page is actually a WC customer account registration, then you still would have to change the user’s role after they register.
You could perhaps use the Nav Menu Roles plugin and setup the nav menu link so it is only visible to Subscribers. this plugin does not “protect” the page, it can help with displaying only relevant menu items based on role and other criteria. The protection comes from the role capabilities which you seem to have setup correctly.
Not sure there is anything for me to test as it sounds lie you have it setup correctly.
One settings change you absolutely need to make, enable this option”Don’t show the cached version for logged-in users” on the cache settings page. Otherwise logged in users might not be able to view the directory or you might display the directory to a “Customer” role because it was cached create by a “Subscriber” when they visited the page. This is not a Connections issue … you could also leak my account page to the wrong logged in user.