hi Mat, well basically anything can be coded into shipping modules ... they are highly flexible. There are many different ways to do it and the fact that there is no downloadable add on for you does not mean it cannot be done to match your needs.
Your description is a bit unclear though, you'd have to think through the system for all possible cart contents (mixed, only free stuff, only reg shipping ...) and then decide on a scenario for each of those. When you have accomplished that (without any loopholes), a new system and and a coding concept can be created ... and as always, even then, there are many ways of solving the issue.