But there are two problems here. The first is that you can make better abstractions in text-based languages, too. In fact, it's easier to do there. So the visual coding language is always easily caught by text-based languages. They may be easier to use for the layman, but they don't offer anything extra to the professional.
The second problem is that abstractions always have limits. Good (useful) languages give you a way to escape from the abstractions when you need to. Evil languages sucker you in and then trap you in a too-limited abstraction from which you can't escape. (It's not just visual languages, either. The original Pascal, before the Turbo extensions, had exactly this problem.)