Development Team membership should be changed
Every Sprint to promote shared learning.
Never, because it reduces productivity.
As needed, while taking into account the short term reduction in productivity. --
Just as it would on any development team, with no special allowance for changes in productivity.