How are the classes being used in the view? If they're being used within helpers or conditionally then this could be why. What does your dockerfile look like?
That's really strange. Do you happen to use a self hosted runner for those actions? If so, check your disk space on the runner machine.
If you're using one of their hosted runners, it may be work looking into seeing if anything changed, or try bumping the checkout version to the latest one. You can also add some flags to cURL which could help as well.
Not at all! I think that we find what works best for us. Back in the day, I couldn't afford an Apple device so I was developing on an old Intel Core i7 2700k. This was back before Docker was even a thing and WSL didn't exist. Even once Docker did come out, Ruby support didn't exist for a while. I used a VirtualBox to run Ubuntu and created network shares (super slow) to do all of my development within. Life finally afforded me an Apple computer and I used those for a long time until more recently where I've been giving Linux an honest go as a development environment.
I mainly see the ViewComponents as a different way to render "partials". There are a lot of other things that come along with this (organization of code, testability, isolation, etc.) but at the end of the day, it's still views that we are rendering. With Turbo Frames, we're not worrying as much about the organization of the code but rather the functionality of the end user. This could be replacing certain elements in the DOM on a request or containing interactions within the Turbo Frame. I think the two are rather separate and greatly depends on what you're trying to accomplish. You do not need to use Turbo Frame Tags inside of a ViewComponent if you're rending simple things, but any time you need the interactions or updates to be contained to the component (or targeting the component) then the Turbo Frame Tags can really shine.