Incorrect, for you to even be able to give your opinion, you would need to learn all the other languages.. There are many other language that are even more flexiable and "stronger" than C++.
Because injecting your code means your code will be part of the Engine process, which means you can do more and not be as restricted. Ofcause you could use AllocMem from GUI app and inject your code that way, But its just easier to work on your hacks and not worry about Injection due to all the injection programs around... Injecting a dll will also allow you to hook functions and create device before they even get created from original library