> instead of returning something semantically like a function, std::bind returns something that might be better described as a partial syntax tree that happens to be something you can call as a function
Indeed. std::bind seems to work more like a Lisp-ish macro than a function in this regard.