Obviously you have to make a choice (another big issue is performance), balance the ease with which you could solve a particular problem with the complexity of the solution.
Just because it's possible to do something doesn't mean it's a good idea. However, there are cases where reflection lets you solve problems in these languages in a nice way. At the very least, understanding the feature of reflection makes you a more competent programmer.