I assume the way this will work is, when I start playing the video, rclone will start downloading at the max speed for the remote, reading ahead until it fills up to 40GB. While playing, the played part fills the 'back' of the cache (right?).
When it's played 10GB, if by that time it's already read ahead 40GB (usually true as downloading from most remotes is much faster than the play bitrate), what will happen? Will the cached file stay at 50GB, and the read-ahead part gradually increase as the oldest played-cache part is deleted while the video is playing?
rclone will keep reading if needed - regardless of your vfs-cache-max-size. It is sort of best effort only and can grow larger sometimes.
Cache eviction does not operates on parts of files - it is all file(s) deleted from cache or nothing. So you should make sure that you have enough disk space to store largest files you expect to use (regardless of your cache settings).
As per docs:
If using --vfs-cache-max-size or --vfs-cache-min-free-size note that the cache may exceed these quotas for two reasons. Firstly because it is only checked every --vfs-cache-poll-interval. Secondly because open files cannot be evicted from the cache. When --vfs-cache-max-size or --vfs-cache-min-free-size is exceeded, rclone will attempt to evict the least accessed files from the cache first. rclone will start with files that haven't been accessed for the longest. This cache flushing strategy is efficient and more relevant files are likely to remain cached.