На мой взгляд, лучше начинать с C++, чем с C.
Проблем не должно быть. Единственное, надо помнить, что C и C++ это два разных языка с достаточно разными принципами. Но вообще они крайне похожи, так что если ты можешь в C++, то ты можешь и в C.
Нет, не будет.
Для первых языков, на мой взгляд, востребованность это плохой параметр. Востребованность меняется и, в любом случае, новые языки учить придется. Главное - это понять основные принципы и иметь желание учиться, а конкретный язык уже дело десятое.
У C и C++ преимущество в том, что они сильно связаны с компьютерной архитектурой под ними и в них можно делать все на очень низком уровне. То есть программируя на них становится очевидным, что ничего не делается по волшебству, и любая высокоуровневая библиотека или функциональность влияет на производительность и должна иметь низкоуровневую имплементацию. Те, кто начинают с Java, очень часто привыкают к простоте и им очень сложно спуститься со своих высот на C, особенно если код низкоуровневый и исполняется напрямую на железе.
У тех же, кто, наоборот, поднимается с C или C++ таких проблем нет. Одним словом, это хороший фундамент. Востребованность - да, C#, конечно, более востребованн, но на него не сложно перейти после C и C++.