Jelle,
I would argue that the statement on not using vacuum or restore when the expectation is that the table will grow to the same size in the future is incorrect. From the behaviour of your database including the size reduction after the restore, you are experiencing bloat. This is common in a Multi-Version Concurrency Control (MVCC) database like postgres. The "dead space" that is created will not be reclaimed by the database without tools like auto vacuum or restore database actions. See for example https://www.citusdata.com/blog/2016/11/04/autovacuum-not-the-enemy/.
Your app is probably creating and deleting a lot of data, causing bloat in the tables and accompanying indexes. This will, over time, impact performance of queries.
Why the index size is increasing more rapidly than the table size could be caused by the use of vacuum full, this could increase bloating on the indexes to get worse over time, see https://wiki.postgresql.org/wiki/VACUUM_FULL. Don't know if Mendix is using this option, but it might be a cause.
Currently the actions that you are performing are the only ones that you have available as you can't perform maintenance on the db in another way in the Mendix cloud.
Hope this is answering the questions you have.
In your case, the graph shows that space used by indexes is growing out of proportion to the space used by data itself. So the linked documentation does not really fit the problem. Well, not the data part. Doing a backup and restore has the effect of creating indexes again, so that will still help of course.
Can you give a high level description of the behavior of the application? Does it just add data, or does it add and remove (cycle) data. What kind of data is it? Is there an index on a time/date field?