いまさらながらの・・
void operator()(Sender& sender) const { std::for_each(functionList_.begin(),functionList_.end() ,boost::bind(&FunctionType::operator(),_1,sender)); }
この部分の引数のsenderが値渡しになるっぽいので
boost::ref(sender)にしたほうがよいみたい
void operator()(Sender& sender) const { std::for_each(functionList_.begin(),functionList_.end() ,boost::bind(&FunctionType::operator(),_1,boost::ref(sender))); }