How to translate only a subset of the pages?

It seems that your only option would be to use 301 redirects for the unwanted public/fr/index.html
Unless you choose to have the root /index.html translated as well.

Your issue is also relevant to the Override section url topic.

But you shouldn’t really feel disappointed, you got a definite reply.

Anyway there are many intricacies with Go and the way Hugo is built. There has been quite a bit of refactoring during the past year. What you’re asking may be a breaking change.

In any case, if the maintainer feels that current behavior will remain as is, there is not much left to be said, except for this:

If you know Go and you feel that this should change, then you could submit a PR to Hugo source (for review) along with proper tests (so that existing Hugo projects don’t break).