I think mixed is also very important. For example, sometimes you really do only have a binary dependency (e.g., .NET assemblies), while other times, you may have a binary + source dependency (e.g., library + header files).
This should absolutely be handled in some good way. I think right now you'd just set the script attribute to something empty, but that's obviously a hack.