Hai ragione, questo significa che la sizeof si comporta diversamente con array e puntatori, in effetti array e puntatori sono simili ma non sono la stessa cosa, difatti un array è un puntatore costante ad una zona di memoria e non puo essere modificato, a differenza di un generico puntatore. Evidentemente il compilatore considera la variabile array come la variabile che comprende tutto lo spazio allocato quando dichiari l'array, a differenza di quando invece allochi spazio per un puntatore.