The alternative I was thinking about was to add an `RTree -> RTree` pass during compilation which splits and removes fill attributes as appropriate.  However, Jeff correctly points out that given the way we currently have things organized, this would mean that the compilation code `diagrams-core` would have to depend on attributes defined in `diagrams-lib`.  We would either have to move some attributes into `diagrams-core` (seems wrong), or move the compilation code into `diagrams-lib` --- which actually might be the right thing to do, I am not sure.