If you call the function Bar, then users might expect to be able to do dispatch and type assertions using ::Bar, so I'd say it's safer to use bar in this case.
Also consider if you're sure that Foo will always return a Foo in the future; if you want to keep the flexibility to change that then I tubing I think you should go with foo as well.