In a system such as
(defsystem :foo :component ((:file "foo")))
where foo.lsp exists and is recognized by the lisp implementation as a valid source file (ECL), ASDF imposes the file extension "lisp". Furthermore, adding our own extension
(defsystem :foo :component ((:file "foo.lsp")))
does not work and one has to resort to an EQL-specialized method (ugly!)
I have submitted a small patch that adds a new option :type that can be used with components of the type source-file https://bugs.launchpad.net/asdf/+bug/542222