I ended up handling text rendering slowness by rendering to textures for each text block. This works fine for static text, but doesn't help when the user is editing a large text block. Didn't try VertexBuffers there, but I imagine that still wouldn't help for the case where text might be changing.
The thing about sprite batching being opinionated is that implementing sprites in an unbatchable manner is opinionated design itself. It's not just batching ambivalent, it makes sprite batching counter to the design of the built in sprites. I think sprint batching could be done in a reasonably generic way that at least gives the user a starting point to customising a solution to their needs.
After refreshing my memory of SFML's views, by cameras I essentially mean better managing of the relationship between viewports and views. For most applications, games included, you really want an output that will have square pixels, and unless explicitly zoomed, you want 1:1 pixel sizes as well. Right now you have to actively manage a viewport and view to achieve that.
PhysicsFS and libcurl are both fine, but they're also both complex C libraries. They have C++ wrappers out there, but what I've seen are really very thin wrappers that don't make the libraries any easier to use, or require referencing documentation any less. Often using a C++ wrapper for a C library just means checking through two sets of documentation to find what you need instead of one. I would prefer having smaller scoped C++ solutions to networking and virtual file systems with an API that makes sense for a C++ codebase.
In these cases, I usually end up writing my own wrappers that include the functionality I need. And that's fine, but there are a whole bunch of those that I have to set up for every SFML project. So I think that qualifies as a pain point: it's one (or two, or ten) more thing(s) that need to be created, configured, or included before I can start using SFML productively.