Well, [man]header/man returns void, so what I guess is happening here is that the return value of header() is being treated as a false value, and thus the die() is always executed.
In fact, if you read the PHP Manual carefully, you would have seen that this is the recommended practice:
header("Location: https://www.mysite.com/checkout");
exit;
[man]exit[/man] is equivalent to [man]die[/man].