Cita: El constructor no recibe la variable $name dentro de la funcion y no puede ser llamada como el metodo magico __set($name,$valor) que encierra dos variables es llamado asi $myclass->name='Hola mundo';
Es normal el constructor solo inicializa variables y se llama una vez, así que despues de instanciar el objeto con new la propiedad $name vale null y por ende no existe ninguna key en el arreglo $data. En otras palabras es el comportamiento esperado.
Cita: El objeto es destruido ... pero como lo destruye si se necesita unset para ese proposito por lo que la funcion magica __unset es la que llama a unset($name); fuera de la funcion .
Error no requieres __unset para destruir el objeto, el método mágico se utiliza cuando usas isset o unset en propiedades que no son visibles fuera del objeto (protected y private)
Espero que en lo futuro acostumbres a documentar mejor tus dudas.