Should we explicitely enqueue jQuery and our theme’s main stylesheet?

jQuery is there because something else, probably a plugin, enqueued it. The enqueue API won’t load it twice, so if you need it you need to ask for it.

The “right way” is to tell WP what you need, and let WP work out the dependencies and duplicates.

Now, there is a rather large “but” here. I’ve seen plenty of WP installs that have a dozen style sheets and a too-long-to-count list of included javascript. If you want to slow a site down, this is a good way to do it. There is an efficient way to develop and distribute themes/plugins, and that is to use the enqueue process. There is an efficient way to operate a website, and that is to reduce the number of http requests to the absolute minimum needed. That’s what caching systems do, and they sometimes hook into the (drumroll please) enqueue process.