There are reasons why CSS should block page rendering. Rendering the HTML without it can look drastically different from when it is applied. The page would change as soon as the CSS was loaded.
Using an async script tag will tell the browser on preload to fetch that data for use during the render stage. This helps minimize blocking and wait times specific to script tags.
Blocking packages are only a small part of potential webpage bottlenecks. There are other elements that can lead to long render times. Limiting the amount of blocking packages is a step in reducing bottlenecks.
Only critical resources should block page rendering. CSS is one of these critical resources. Files should be small and many of them local to the page being rendered.