Quais são as desvantagens da declaração a prazo?

Estou imaginando se há alguma desvantagem no uso de declarações avançadas em todos os lugares, quando possível. Isto é, se meu cabeçalho contiver apenas declarações.

Pelo que entendi, o uso da declaração direta acelera o tempo de compilação, mas não conheço nenhuma desvantage

Exemplo

a.h:

Class A
{
};

b.h:

// Should I use and include "a.h" in the cpp file (e.g., a.cpp)
Class A;
Class B
{
    doSomething(A *a);
    A *myA;
};

Ou é melhor usar

b.h:

#include "a.h"

Class B
{
    doSomething(A *a);
    A *myA;
};