While rather new to the concept of litterate programming myself (and it's therefore likely that I'm missing the boat entirely), it seems very much to line up with the concept of a DSL.
The idea behind a DSL is to distill down a domain of problems into a simple, natural-language-oriented grammar that can be used to built algorithms for solving those problems.
To me, that same idea, or at least the core foundation of it, is the same or at least closely related to literate programming.
In the groovy world, for example, there is a strong push to use DSLs more regularly and to create new DSLs to solve common problems. This push comes from both tools within the language (easy builders), as well as core libraries supporting a DSL-based API.
Given that the trend, at least in that corner of the world, is towards literate programming, I would say that it is a good methodology to strive for.
Unfortunately, the level of thinking needed to create a good dsl is often beyond most programmers, from what I've seen. I know I personally struggle with some of the concepts needed from time to time. It may be this difficulty that has prevented such techniques from gaining more wide-spread adoption.
It's your classic case of when using the tool is one thing, but creating it is on a whole different level.
To expand on my point of view a bit, it isn't s much that DSLs are the same thing as literate programming, but rather that they make literate programming much more possible. Particularly when they are natural language DSLs.
In version 1.8 of groovy, the natural language DSL capability was substantially improved with the addition of more powerful command chains.
For example, the following lines of code are programming, not just pseudo-sentences:
drink tea with sugar and milk
move left by 30.centimeters
sendFrom "Guillaume" to "Jochen"
send from: "Jochen" to "Lidia"
Email.from "Lidia" to "Guillaume" withBody "how are you?"
contact.name "Guillaume" age 33
move left by 30.centimeters
sell 100.shares of MSFT
take 2.pills of chloroquinine in 6.hours
blend red, green of acrylic
artist.paint "wall" with "Red", "Green", and: "Blue" at 3.pm
wait 2.seconds and execute { assert true }
concat arr[0] with arr[1] and arr[2]
developped with: "Groovy" version "1.8-beta-2"
Note: Code sample comes from Guillaume Laforge's blog
The core idea behind literate programming is that natural language is more understandable for humans and that is what matters. Groovy's natural language DSL capabilities make that a much closer reality, in my opinion. Especially when those DSLs are used to create business rules for an application.
Being able to "encode" the critical components of a system using natural language is the very essence of literate programming. Having to intersperse natural language with chunks of code is a bastardized form of literate programming. While useful, I believe that natural language DSLs that allow you to use natural language as the code itself are a huge leap forward.
Expanding the capability to programming in general is the next step in the process, but to a large extent the tools to do so are already in place. Yes, there is not a "general" DSL yet, but for smaller domains, the capability is there.
For more examples of this in action (in no particular order):