Io la vedrei così:
- il puntatore mio_punt è nello stack;
- la memoria a cui punta mio_punt è allocata nell'heap per mezzo della malloc.

In pratica credo che il punto sia distinguere il puntatore dalla memoria puntata dal puntatore. Un puntatore non è altro che un handle alla memoria allocata nell'heap...e se questo fa parte di un parametro di funzione o è una variabile locale ad una funzione viene messo nello stack.

Direi inoltre che se qualcosa è allocato con malloc finisce senz'altro nell'heap.

Speriamo sia giusto