I've been doing angular for a long time and hadn't thought of your use-cases. One important thing to mention is your menu example is only possible with strict mode turned off. With strict mode on, you have to set all properties in the constructor or allow them to be undefined also. This would cause errors in the cate property or you would have to provide a default value for menu.
There is another insidious issue hiding in that menu example. If you flip cate and menu, even in strict mode, you will not filter the menu properly. There are many ways to solve this, but your original point that the order of properties should not matter.
Thank you for sharing. It is good to be reminded of good practices.