The main difference is that when you compile a program for Windows, Linux etc., you have an operating system and kernel with their exposed functions/interfaces so even in a compiled program it's pretty easy to find the function calls for opening a file, moving a window, etc. (as long as the developer doesn't add specific steps hiding these calls). But in an embedded system, it's one large mess without any interfaces apart from those directly on the hardware level.
In Germany, we usually have presents on the 24th in the evening, but the big family gatherings are often on the 25th (and 26th, as you're typically part of multiple families).
How often does branchless programming actually matter in the day to day life of an average developer?
Barely never. When writing some code that really has to be high performance (i.e. where you know it slows down your program), it can help to think about if there are branches or jumps that you can potentially simplify or eliminate.
Of course some things are often branchless, for example GPU shaders, which need very high performance and which usually always do the same things. But that's an exception.
The main difference is that when you compile a program for Windows, Linux etc., you have an operating system and kernel with their exposed functions/interfaces so even in a compiled program it's pretty easy to find the function calls for opening a file, moving a window, etc. (as long as the developer doesn't add specific steps hiding these calls). But in an embedded system, it's one large mess without any interfaces apart from those directly on the hardware level.