The idea is shamelessly taken from veloren

https://veloren.net/
Veloren only recently implemented viewing terrain at any distance.
Some rough ideas of how it could be done: either save map data as the server loads it, or generate a preview from the seed. The goal is to get: 1) approximate average color of the nodes (pixels), and 2) height map of the terrain. Then, a simple pixelated image of the terrain color is mapped to a mesh of he terrain height and this is displayed in the distance. Each mapblock in the distance is its own rough mesh and image, and these are generated when the map is loaded, saved by the server, and sent to clients if/as they request them. When I say mesh, I mean a very rough mesh to save data. The trees and buildings, for example, should not be included. Basically, the mesh approximates the shape of the base terrain. As a player gets close to a mapblock, the mapblock is loaded, and details become visible like normal.
Infinite viewing is not necessary... just, send a large viewing range using this method would do.