Generally speaking: Yes. Using less steps to get to the desired goal is a good thing. However, this is not the case if the complexity of the steps rises instead (see for example the performance difference between one-step and multi-step checkouts). So: If reducing steps DOES mean also reducing complexity - then yes, it is good. If not, then not.
Concerning your language switch question: "Standard" would be to offer a list of choosable items, not using buttons like you did, but use the button space for confirmation/cancel action instead. If you intend to add another question, your concept breaks out of bounds - and you also might like to consider wording length.
So yes, you for sure could use On-Off switches or checkmarks directly in the list, but this is not their intended functionality, since these are made for yes/no or on/off situations. Your situation is more similar to a single-select radio button style choice. For not confusing the user by breaking out of standard AND because two steps will make the interface less cluttered and thus less complex, I'd go for the 2 step approach: Click on "switch language", then select one from a list.