When you place the &, you're telling the shell to run what precedes it in the background and continue with a new command.
When you put it at the end of the line, there's no command after so the shell returns to interactive mode.
When you place it in the middle, the shell interprets the rest of the line as a new command. That command redirects the standard output of nothing to server.log. Since you're not redirecting the output of nohup, you now see it on the terminal. Since the shell had already redrawn its PS1 before, you see that line of output as if it were a command, but it's simply output from a background job. You can type your new command without even pressing enter before (though it's not that clear when you read it later).