Это хорошая / распространенная практика, чтобы проверить, способны ли ваши заголовки компилироваться самостоятельно?
Да. Практика хорошая и, насколько я знаю, обычная.
Если да, в чем преимущество
Заголовок, который не работает сам по себе, обязательно должен полагаться на контекст, где он будет включен. Если заголовок работает только тогда, когда он включен в определенный контекст, это fr agile. Хрупкость - это запах кода.
... заголовки включены препроцессором в модуль компиляции и должны компилироваться только в контексте этого модуля.
... А также все остальные единицы, в которые включен заголовок. Включая те единицы, которые еще не были написаны. И он также должен продолжать работать при внесении изменений в эти единицы.
Заголовок, который работает только в одной единице перевода в один момент времени, не очень полезен в долгосрочной перспективе.