I am not sure if Juan reads this list. He may have a better idea on how to achieve this approach.
I am afraid I do not know what grovel is doing, but all what you mentioned in your email is correct. ECL needs both files because that is the only correct way to build a shared library out of an ASDF definition. In the past we only kept the FASL and threw away the object file, which implied a second recompilation for every new operation and this led to unwanted changes in the order of ASDF -- the resulting libraries were not identical to the process of loading a clean and fresh ASDF library.
This parallel rule would ensure that the intermediate lisp is always generated (via grovel-op) and the grovel-file does not have to deal with compilation itself, which is delegated to the load/compile-op on the resulting file.