3ds Max has two distinct internal states for updating scene content - Viewport, and Render.
Normally 3ds Max is in Viewport mode, unless you hit the Render button - this switches the internal state to Render mode, and updates all scene objects according to their render settings. For example, modifiers on the stack can be turned off in the viewport, but turned on in the renderer. Some modifiers (for example Turbosmooth) have separate values for the two modes. Some objects have radio buttons to only update at render time (e.g. Mesher compound). Some objects have dedicated viewport and render settings - both PFlow and TP can generate different particles depending on the mode…
The TP cache also has two states - Viewport and Render. So the particles that were cached could be based on the viewport state, or the render state. However I believe that the resulting cache is valid in both modes.
The settings you have manipulated in Frost tie into this Viewport/Render state system. When Enable In Viewport is unchecked, Frost is basically disabled when 3ds Max is not rendering. When you render, it asks TP to give it the render state particles, and meshes them.
When “Use Render Particles” is checked, and “Enable In Viewport” is also checked, Frost will temporarily switch to render state while asking TP for its particles, so the data it would get back would be based on the render settings of TP.
When “Render Using Viewport Settings” is checked, then the render-time meshing settings (the mesh quality controls) are taken from the viewport controls. So what you see in the viewport is what you get in the renderer in terms of mesh density.
When 3ds Max switches between Viewport and Render modes, Frost needs to update on each change. So let’s say you are on frame 0 and have a viewport mesh in the viewport based on the viewport particles. You hit render and it requests frame 250 via Pickup Frames or Custom Range. The scene is switched to Render context, and Frost asks TP to give it the render-time particles from frame 250. TP goes to the cache (if active), and grabs the particles and passes them to Frost. Frost generates the render-time mesh, and passes it on to the renderer. The renderer finishes and 3ds Max switches to Viewport mode. So the viewport needs to be updated with the viewport mesh. Frost asks TP for the particles on frame 0 in viewport mode, then meshes them, and updates the viewport.
It is possible that at some of these steps, the switching between Viewport and Render mode causes TP to ignore the cache and brute-force update the particles. In my setup here based on your scene which I have not modified at all, it appears that the same cache works for both viewport and rendering without brute-force pre-rolling. Which might be a glitch as you have a different experience…