Я предполагаю, что разработчики WP просто избегали преждевременной оптимизации и вместо этого выбрали лучшую читабельность.
"SELECT * FROM posts WHERE post_status = 'published' AND post_type = 'post'"
немного легче читать, чем
"SELECT * FROM posts WHERE post_status = ".WP_POST_STATUS_PUBLISHED."
AND post_type = ".WP_POST_TYPE_POST.""
И когда новый разработчик WP запускает запрос select * from ...
, таблица базы данных перечисляет «опубликованные», а не 3 или 5, что проще для понимания и отладки.
С точки зрения дискового пространства, любой подход достаточно хорош, я думаю - еще post_status
байтов не должно иметь большого значения по сравнению с текстом поста в блоге и всеми другими столбцами. Целое число составляет 8 байт (ну, если не крошечный), а значение «опубликовано», возможно, составляет 10 байт, так что это не имеет большого значения?