One plain roti canai is genuinely not a disaster. 301 calories with some dhal is a reasonable light meal. The problem is nobody stops at one, and nobody orders it plain. Roti telur, roti planta, roti tisu, roti bom, each upgrade is just more fat and sugar folded into the same dough.
The margarine is the part people miss. That flaky, layered texture comes from fat worked into the dough and more fat on the hot plate. The flour gives you carbs. The margarine gives you the calories. Two plain rotis plus a teh tarik is already a 750 calorie supper, and most people treat that as a light snack.
To put one roti canai in perspective: 301 calories is about four and a half slices of white bread. Nobody sits down and eats four slices of bread with margarine as a light snack, but that is effectively what one roti is, thanks to all the fat laminated into the dough.
The 2am factor matters too. Calories at night are not magically worse, but a supper roti comes on top of everything you already ate that day. If dinner was done and you were fine, the mamak trip is pure bonus calories. Two rotis and a teh tarik as a "snack" is 750 calories your day did not need.
If you want the mamak experience with better numbers, look one line down the menu. Tosai kosong is around 200 calories, chapati around 240, both with far less fat than roti. Same table, same dhal, same late night talk with your friends, 100 plus calories saved per piece.