creo que no entiendo bien tu pregunta.
Con el primer codigo, si hace las 2 llamadas a los desctructores.
Con el segndo codigo, tambien.
Prueba declarando tu clase asi:
Código:
class ClaseEj
{
public:
ClaseEj() { cout << "llamada al constructor" << endl; }
~ClaseEj() { cout << "llamda al destructor" << endl; }
};
asi verificaras cuando se llama y cuando no.