Hello, theme.js is where we have all the basic functions that are used on Porto, custom plugins that we created and some of them have dependencies to others, like Carousel (OwlCarousel). You can remove those that you don’t use, but as you said you will have to do that again when you receive an update, unfortunatelly there’s not way to do that automatically. The only way would be having multiple files so you could just not included them, but it would generate much complexity for the theme. Also, that file compressed have a little more than 100kb.
Kind Regards.