В чем вообще соль задания nullable полей в БД, вместо пустых значений по умолчанию, есть ли в этом какой-то сакральный смысл?
NULL - это не пустое поле. Это "поле не заполнено".
Используется в тех случаях, когда разница между этими состояниями - есть.
Кроме того, у числовых полей или дат просто нет "пустого" варианта. 
0 и '1970-01-01 0:00:00' - это значения, которые вполне могут иметь смысл.
Например, при подсчете средних значений или интервалов NULL позволяет исключить ненужные строки.

Если вам без разницы, заполнил юзер свои поля или нет - значение по умолчанию подходит, использовать NULL просто незачем.
У тебя нет понимания что такое NULL. NULL - это нет конкретного значения
 можем просто назначить ему по умолчанию '', 0, '[]', и т.д
Нет, не можем. Это и есть конкретные значения, которые имеют смысл. Иногда нужно учитывать, что значения у поля просто нет. Никакого.

Примерно как Кот Шрёдингера - у него состояние в суперпозиции NULL