There is no separate storage for user capabilities. Capabilities are stored in the roles. Role is PHP array of capabilities
array('read'=>1, 'edit_review'=>0, ...). Some are turned on, some are turned off, But all of them are still there, until you remove/delete unused capability.
You unset singular caps, but they are still in the roles, while you see them in the "User Role Editor".
Doc page you mention is about creating capabilities programmatically when you register custom post type. This page is not about giving access to those capabilities to the roles and users. When you create capability in the "User Role Editor" you work with permissions system which helps WP to decide if allow or prohibit operation to the user. Needed capabilities are existed/registered already in WP. There is no need to duplicate meta-caps in roles. Work with primitive capabilities only.
Our discussion goes to the circle. I have suggested you to check, that you see notices from WP core because of improper use of User Role Editor to create manually custom post type meta (singular) caps. If you do not wish to follow it, it is nothing I can do.
May be it has sense to test if capability have the same name as existing meta-cap and do not allow to create and show it in the roles, in the future. But the task is not trivial for the 1st glance.
P.S. You are not alone. WooCommerse plugin registers capabilities the same way and I see the notices from capabilities.php you mentioned above. So I have the own playground to test now.
Thanks for the information.