I guess your world of embedded programming and mine are miles apart. For me, an embedded system has hard real-time requirements.
Then again, nowadays people call some full fledged Linux system embedded just because it's running on an Arm and fits in a small case.
Without real-time requirements, a lot of RAM, no safety concerns and the freedom to ignore input events as you like, dynamic RAM allocation is no problem of course.
For the type of embedded systems I'm concerned with, it is though.