If I add a service, can I still restore a snapshot from before that service existed?

Adding a new service (eg. a new MongoDB) changes the persistent data model of my project. Does that render it incompatible with backups/snapshots made before?

Yes, a backup taken before service was added will be incompatible with your configuration.

A backup is a collection of the persistent storage backups for each service (and application) containers. When a restore takes place, each of those individual backups is applied to each service one by one. Of course, the new MongoDB service is not included in that backup, but the problem occurs in the step right before the backups are applied.

All of the persistent data in the environment is erased first, in order to make way for the backups to be applied. This, in combination with MongoDB missing from the backup, will result in data loss.

You can take a look at the tutorial here for a more comprehensive look at some of these consequences in this case and in the case of newly added mounts.