I've had several experiences investing huge amounts of time and emotional energy into companies and projecots that didn't deserve it. Total loss. Skill growth and career advancement I can get behind. Unrequited loyalty means you piss away the only resource that actually matters: time.
Computing is highly specialized, but what we need to tackle that is a real profession. Professionals have ethical obligations that supersede managerial authority, and are both allowed and expected to devote half their time or more into career growth and continued learning, rather than dropping 40-50 hours on short-term, managed work. Are software engineers really professionals? I'd argue that, across the industry, the answer is a resounding "no". But it would be a better world if we were.