Withint the standard CMS approach we use blocks at either a global level or a "For this page" level to create blocks that will render on a page. The "For this page" feature is very handy as this allows for editors to create blocks specific to page content and to not clutter the global blocks.
Within commerce the common approach is to route the catalog in to a node in the CMS or the Root page then use catalog nodes/products/variations as pages that render on the front end of the site.
Within Commerce out of the box there is no support for the "For this page" feature, however you can get around this to some degree although it's not supported such as https://world.episerver.com/blogs/david-harlow/dates/2018/3/extending-commerce---content-area-functionality/. This allow for blocks to be added for this node/product/variation however this come with some issues.
All in all when designing a modular stucture using blocks you want to be able to use common blocks across both CMS pages and Commerce items and without these features you have to fudge it by using the Shared Blocks area.
This has already caused issues with our design/ux and structure on our first commerce build and it would be really great to get this in for the future.