MetDataAdapter getDistinctSnapshotLength function must return the maximum allowed length for a Snapshot of an Item that has been requested with publishing Mode DISTINCT.
So since getDistinctSnapshotLength is specific for single Item the MetaDataAdapter must take into account the expected needs of all clients.
In the above scenario if MetDataAdapter getDistinctSnapshotLength function for item X return 50: application A will receive snapshot with length 10 and application B snapshot with length 30.
But if MetDataAdapter getDistinctSnapshotLength function for item X return 25: application A will receive snapshot with length 10 and application B snapshot with length 25.
The getDistinctSnapshotLength implementation must be a trade off between the need to satisfy all customer requests and the foresight to avoid stressful situations for the server.