This is indeed a bug in Vim. I filed a GitHub issue, and someone on the vim-dev mailing list addressed it.
Here's a patch that fixes it in Vim 8.0.52:
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 439467c..ca4133a 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -11091,6 +11091,8 @@ makeopens(
}
if (tabnr > 1)
need_tabnew = TRUE;
+ else if (put_line(fd, "new") == FAIL)
+ return FAIL;
}
/*
Patch courtesy Hirohito Higashi on the vim-dev mailing list. I imagine it will make its way into the official distribution.
Update:
This was fixed in Vim 8.1.0149 (see GitHub PR).