The issue of REST API's and "front/back end" are orthogonal. The front end may well serve up web pages, REST API's and web socket streams to clients out in the world. In turn the back end may well serve REST API's and web socket streams to the front end.
It's API's all the way down...
To my mind a use case for Rust is in creating reliable software with high and predictable performance. That is to say all software. Front, back, sideways, on servers, on embedded systems, whatever. That is what we are doing here.
I'm not sure what you mean by "offline" there. I usually take "offline" to mean some processing that is done as a big job that has no real-time requirements. We process large amounts of data, continuously, all the time. A lot of that processing is what we call "back end". It happens out of sight of the end users. In the "back office" as they say in the physical world.
It might be. I see no reason for it though. We use Nginx at the very front of our front ends. Only acting to handle HTTPS and certs, and as a proxy passing requests on to our actual servers that are created in Rust using Rocket.
I really don't want to go back to a wobbly, poorly performing, mess of scripts created in Python or node.js or whatever.
I'm not sure that "agile" has anything to do with it. Agile is an approach to design and development. It says nothing about what language one is using.
Sure it feels so much easier and quicker to knock up a quick script in whatever scripting language. Perhaps even easier to modify such creations when they are still small code bases. This gets increasingly, and rapidly, more difficult as projects grow, especially if more than one person is working on it.
At this point you find you can have far more confidence in modifying Rust code without breaking anything. Thanks to Rust's strict type checking and lifetime checking.