Yes, --mirror implies a level of force. The man page contains this:
"...locally updated refs will be force updated on the remote end, and deleted refs will be removed from the remote end..."
"...locally updated refs will be force updated on the remote end, and deleted refs will be removed from the remote end..."
If you just want to push all branches or tags you should use --all or --tags.