do not cache function sets

Sets defined by filter functions may be impure. For example

```js
function makeSet(foo) {
  return doc.createSet(function (s) { return s.foo === foo })
}
```

So it's not safe to cache them by their `key`