ANSI NULL OFF By Default in database option
Some of the database settings are useless. As you have noticed.

The client API (ODBC etc) will override them. And, the client app (SSMS for instance) can further override whatever was overridden by the API.

So why are those database settings still there? Because stone-age API didn't do such override. I'm thinking DbLibrary here, but this might apply to other very old APIs as well.

Why do they have such weird database option values as default? Because of backwards compatibility. I.e., so you can create a database "as default" and use a stone-age API "as default" and get the same behaviour as you did back in 1989.