That's a false dichotomy. There's plenty of "geniuses" that will stick around for many years and plenty of "cogs" that will be gone in one.
From a co-worker perspective, yes, I'd rather work short-term with someone talented. From a managerial perspective, I'd first choose the talented employee who has demonstrated an ability to commit, then I'd choose a less talented (but with potential to improve) employee who I believe has an ability to commit, then it's roughly a tie between someone mediocre and someone talented who will likely abandon their project in the lurch. Those last two are both pretty lame options.
When an employee isn't motivated, both the employee and employer lose.
Many places take a few months to get integrated into the codebase, not a year.
I did this because of what you're saying. Now, when I ask hiring managers how the company is doing in their intended business cycle, it puts them on the defensive. As I followup by saying, "I ask because if extended an offer, I intend to stick around a while". They have proof I'm not BSing or a flake on the job. They love it.
I'm getting a lot of interest after only being on the job market for 1 1/2 weeks. I'm going to get hired soon.