с точки зрения программиста:
Главное - это мощная и гибкая система поддержки плагинов (как в winamp`e) если этого добиться , то программа со временем обрастет всеми выше перечисленными функциями и ещё пепельницы вытрихать будет ...
P.S.
На мой взгляд это основная задача , иначе проект обречен на провал ...