I understand GO slim is just a concise version of GO with fine grained terms removed. GAGE definitely works with GO slim data in the right format, i.e. a named list where each element is a vector of member genes mapping to a GO term (or a pathway).
Note that you don’t have to make GO slim data by youself. You can create the complete GO data with go.gsets function from the package, then use set.size=c(10, Inf) when calling gage. This way, you are creating a GO slim on the fly by removing small GO terms with less than 10 genes mapped. Of course, you may also set the upper limit like set.size=c(10, 1000) as to remove GO terms which are too general. For more details please check the gage documentation:
I think there's another difference between applying a limited set.size, as you suggest, and GO slim. GO slim is also slim on redundancy between categories. Is there a way to test for non-redundant categories using GAGE?