It appears you can't set default parameters in an expansion of `${@:-...}`, and `"${@:-"$base/aaa" "$base/bbb"}"` is expanded as a single string.
If you want to set default parameters you might want to do this:
base=$(dirname -- "$0")
# test explicitly for no parameters, and set them.
if [ "$#" -eq 0 ]; then
set -- "$base/aaa" "$base/bbb"
fi
Then, the `"$@"` magically quoted parameter substitution can happen unabated:
touch -- "$@"