I’m building my own custom theme and I see some css and js files loaded in the header because I use some blocks like the navigation and form block, they both load a .css file that is not used, but I can’t figure out how to disable it from loading it anyway.
Options available, use in whatever combinations make sense. Most themes only need (1)
If your theme provides your own block templates, and those templates include a view.css, your own view.css files will be loaded in preference to the core css for the blocks.
Your theme’s page_theme.php can declare that your theme provides all css and js for specific features. The core will then leave all support for those features up to you.
You can add/remove sitewide stuff that gets loaded in you theme’s header_top and footer_bottom. Usually better for adding rather than removing.
Concrete has an event system. You can use that to intercept and in many cases modify what is happening Full Event List :: Concrete CMS
When you provide an asset, it needs to provide all parts of the asset that could be used on the front end. So is ideally a theme built on Concrete bedrock. Have a look at how Atomik does it, then check some of the free MP themes that are built on bedrock.