A veces, un menu puede ser activado o desactivado de manera dinamica. Construirlo en un principio solo para ocultarlo es un gasto de recursos y tiempo de procesador.
Ademas, el menu creado directamente con la API de Windows es mas maleable, o al menos desde mi punto de vista, dado que me resulta mas facil tomar el HANDLE o el HMENU y modificarlo al vuelo agregando quitando o renombrando cosas.
Tambien esta el punto de las extensiones a otros programas. Agregar un menu u otro objeto debe ser posible programaticamente para no sellar los programas a un grupo de caracteristicas(hablemos de un sistema operativo que tiene que permitir todo lo mas general).
Seguro que hay otras cosas, pero esas son las primeras que me vinieron a la cabeza..