From an engineer's point of view:

More complex programs imply that you have to consider more factors to do whatever particular task you want done. This also means that there are more calculations that need to be done under certain criteria, etc. etc.

If you go outside of writing programs for your computer, like for any type of ARM processor, then things like interrupts, memory allocations/stack pointers, registers, etc. are all issues that you have to address. You can't really afford to waste cpu cycles or memory inefficiently or have it doing nothing.

I don't know much about writing more complex programs for your computer but that is because that is not what I do. Maybe someone else can provide better insight.