The default is “I do not care about gas consumption, not when deploying and not when running. Just give me a bytecode easy to debug.”
As a matter of fact the code size shall be bigger than the minimum and the execution cost shall be bigger than the minimum, but the mapping from source code to bytecode shall be as detailed and straight and clear as it can be.
“Runs” can be interpreted as the expected number of runs of the deployed code in the whole life of the contract to be optimized.
If you specify Runs=10 it means that any optimization that make it globally less costly to deploy and run ten times the code are allowed. And this can be very different than optimize one deploy and 1000 executions!