коммутировать можно все. но не все реально по ресурсам и срокам (имею в виду ресурсы программистов). все варианты реализовать невозможно. вот для этого и существуют библиотеки. для того % пользователей, у кого сложные задачи.