i, as an app developer, have to reboot my mac atleast two times the week to get xcode back into a working state. not to sound like a jerk, but if you dont have to powercycle you prob not pushing your machine far enough
any sufficiently complicated software can reach a state where problems arise. you just need to push it far enough.
e.g. i have the swift compiler giving up every few weeks because i feed it code that crashes its internal constrain-solver. good thing is, submitting such code samples i can contribute to its improvement. i believe everyone has a tale of some software exhibiting strange behaviour, ive seen it all: adobe products crashing when you exit them, broken text rendering in firefox until a restart, hell, i even had the windows' LogonUI.exe hang on me.
the point is: consider a software to be a state machine. since we stopped formally verifying correctness of our programs, it is in the realm of possible for each program to reach a state where its behaviour is undesired and there is no easy path to move it to a more stable state.