Oui C# est un Java-like puisqu'il a été créé pour le concurrencer.
Pour la portabilité, le C l'est autant que le C++ (et plus que le C#). Une fois compilé, l'orienté objet n'existe plus (transformé en procédural), donc le fait que ce soit orienté objet ou pas n'intervient pas sur la portabilité (au final rien n'est objet).
Le developpement C# est effectivement plus rapide pour le developpement d'applications windows (surtout si ça touche aux possibilités de windows).
Le C reste très utilisé pour le développement de programmes non applicatif demandant une bonne gestion des ressources. Tout dépend de ce que l'on veut faire
Savoir programmer en C est très utile car beaucoup de langages sont influencés par sa syntaxe, et comme c'est le plus proche de la machine, ça permet de comprendre comment fonctionnent les programmes.