I completely agree with Allen on the future of DSLs, and how the higher-level they are, the easier it is to optimize them tons. [Disagreeing with a Turing award winner is usually foolhardy and requires a lot of proof, else it's hardly credible].
Anyways, I've actually been working on this quite intensively for the past few years, and I'm totally convinced it works. The main problem is that few programmers have any real clue what 'high level' really means! In the Maple world, there is an easy example: a MapleSim diagram is sufficiently high-level. Anything lower-level than that contains too many 'operational' details. I guess another example would be the rubber-band model of placement for Maplets. Properly written LaTeX would also qualify as reasonably high-level, but few people ever write 'proper' LaTeX, mostly because few people really understand Model-View-Controller well enough to understand how to separate model and view. At least the web people eventually got it right (a proper web page uses CSS for the view aspects and XML for the model). While the syntax of CSS is not great, it is conceptually a really good DSL for what it does.
The point about being able to do program analysis is also quite non-trivial: to be able to do that requires really and clear solid semantics for the language. Unfortunately, for Maple (see my ex-student Stephen Forrest's work on the topic), it's just too bloody hard. Maple's programming language has a very messy operational semantics, which means that it's extremely hard to analyze with any degree of precision.