Shopify performance is often discussed like there is one magic fix. In reality, performance comes from many small decisions working together.
The biggest areas I look at are image loading, app bloat, font loading, critical CSS, JavaScript behaviour, layout shift, and how much code is loaded on pages that do not need it.
For a theme, the goal is to load what matters first and avoid making every page pay for features it does not use. Product-only CSS can stay near the product template. Filter CSS can load on filter templates. Critical CSS should focus on the above-fold layout, not become a dumping ground for every style in the theme.
Performance also has to be balanced with merchant control. A theme can be fast and still flexible, but the structure has to be intentional.
That is why I treat performance as part of the theme architecture, not as something to patch at the end.