Исходя из своего опыта, я не чувствую, что трудно синхронизировать Null-объект. Если у вас возникла эта проблема, у вашего объекта может быть слишком много обязанностей, поскольку он подвержен значительным изменениям.
Я склонен использовать этот шаблон, если я действительно могу определить такой объект с точки зрения обеспечения хорошего поведения по умолчанию. Например. Нулевой объект для манипулирования запросом - это объект, который не затрагивает исходный запрос. Нулевым расширением какого-либо другого объекта является тот, который ничего не делает.
Иногда я нахожу довольно чистый шаблон, чтобы не проверять с помощью ifs необязательное поведение, которое может существовать или не существовать в определенном состоянии моего приложения.