Questions on optimizing Obsidian Bases formulas (is there caching? How often are they processed?)

I’ve been trying to understand how Obsidian Bases formulas work, how they’re processed and chaced, so I can understand if it’s possible to further optimize my queries, because they’re starting to slow down quite a bit…

If I have a formula:

FilePath:
    file.path

That I then reference from another formula:

ThatFilePath:
    formula["FilePath"]

The result is that ThatFilePath gets processed for each file row in the Bases view, being called once for each file. In my vault of ~1,500 files, this would be called ~1,500 times, to produce ~1,500 unique rows of data.

If I now decide to rewrite ThatFilePath as:

ThatFilePath:
    this.formula["FilePath"]

The FilePath formula’s file variable would now be replaced with whatever this is (the .base file, or the .md file with the base embedded), which means that logically, it should only need to be processed one time, and its result would be shared among the ~1,500 rows of notes.

My question is, does this only get calculated one time? I’ve been writing a cascade of formulas to manipulate a few dozen lists (one list per formula) of 0-500 links in my vault, and that each new level of formula gets progressively slower in a way that’d make no sense if they were being cached or only calculated a single time, but makes much more sense if the formulas are being recalculated every time for each of my ~1,500 notes.