I would just like to throw in a quick idea.
The easiest way to support noweb tangling is to get org-babel-tangle to create nested tags and change detangle to take these into account.

for example, i have the forex_user source block that is tangled.

;; [[file:~/Dropbox/.rep/clj-forex/clj-forex.org::*User][forex_user]]
my code...
;; [[file:~/Dropbox/.rep/clj-forex/clj-forex.org::*User][embedded_block]]
my embedded code ...
;; embedded_block ends here
;; forex_user ends here

corresponding to a forex_user block of 
#+begin_src
  my code ...
  <<embedded_block>>
#+end_src

This would only work for noweb on separate lines and preferably only when one block is noweb embedded into one other source block, but i believe that this is the most common case anyways. This could be enforced in the detangle/tangle code.

Then, a separate minor mode could make these file: markers invisible and create a colored overlay pattern per source block code. Saving the file would still save the markers, you just wouldnt see them if the minor mode was on.