When to use add_settings_section vs just register_setting?

One point which is probably less important, is that you do not need to worry about styling of headers and labels, as the settings API will take care of it.

The more important aspect is software design. The more options you have the less maintainable your code will become if you just write it in one function, and you will actually want to split it into smaller functions to make it more readable, and being able to have unit tests that test it. Since you get all of that “for free” when you use the settings API, you should have a good justification for not using it (maybe you want something that do not look at all like a usual admin page).