1) autoload code as needed
2) wait until the last possible moment to define FSSM::Backends::Default
3) provide set_backend(symbol, value) to make it easier to opt out and use polling, as well as plug in your own custom backend or backend handling logic
4) handling of platform specific dependencies via spec.extensions + rake
I'm not completely convinced on point number four. Though, if gem install option args get passed to rake along the way, it'd be a non-issue to have it do nothing by default and only install/update backend support if asked.