That's correct. Server settings and setting it at register level are configuring it on the Discord API side which means a command can be hidden from users because at that point it's simply to sent to them from the API. Preconditions however are runtime checks and essentially just glorified if checks.