If you are using snapshot replication (there are 3 types: Snapshot, Transactional and Merge), then each time you sincro the subscribers then a new snapshot will be aplied.
If you are using any one of the other two, then the snapshot is valid only for the initial sincronization. Then only changes will be replicated.
If you also reinitialize or a subscription expires, then a new snapshot will be necesarelly.
The funtion of the snapshot is to put to databases (subscribers and publisher) in a consistent state to start replicating all the changes.