Your patch to fix printing of h1 title when :with-title is nil looks good.
More comments below.
OK, I agree that the title being made blank not be tied with `:with-title`.
diff --git a/lisp/ox-html.el b/lisp/ox-html.el
index 43e4ef8d48..25a41e1dc4 100644
--- a/lisp/ox-html.el
+++ b/lisp/ox-html.el
@@ -1812,11 +1812,14 @@ INFO is a plist used as a communication channel."
(defun org-html--build-meta-info (info)
"Return meta tags for exported document.
INFO is a plist used as a communication channel."
- (let ((protect-string
+ (let* ((protect-string
(lambda (str)
(replace-regexp-in-string
"\"" """ (org-html-encode-plain-text str))))
(title (org-export-data (plist-get info :title) info))
+ ;; Set title to an invisible character instead of leaving it
+ ;; empty, which is invalid.
+ (title (if (org-string-nw-p title) title "‎"))
(author (and (plist-get info :with-author)
(let ((auth (plist-get info :author)))
(and auth