混乱するか、異なる観点からの説明で理解のきっかけとなるかわかりませんが、
3つの別の例を示します。
①
フィールド計算機で次の計算をしてみてください。
レイヤやプロジェクトにどんな CRS を設定したとしても結果は 10000 になります。
area(
make_polygon(
make_line(
make_point( 0, 0),
make_point(100, 0),
make_point(100, 100),
make_point( 0, 100),
make_point( 0, 0)
)
)
)
area 関数に与える引数のジオメトリは座標系情報を持たず座標値しか持ちません。また
レイヤ CRS 情報は考慮されず、座標値が地球上でどのような位置にあるか計算しません。
make_polygon 関数で作成したジオメトリデータを見てもらっても座標系情報を持たない
座標値のみのデータであることがわかります。
このことからも area 関数は自然と平面上(地図上)における面積算出とわかるかと思います。
一方、 $area はレイヤの CRS をもとに、プロジェクト CRS で採用されている楕円体上
(地球上)のどの位置にあるか具体的に計算し、楕円体上での面積であるか計算し結果を
返します。(ただしプロジェクト CRS が「 CRS なし」など楕円体が規定されていない場合、
やむを得ず、 area() と同様に平面とみなし座標値のみで計算されます。)
このため、引数としてジオメトリを指定したりすることはできません。
②
下図は WGS84 を使用したモルワイデ図法( ESRI:54009 )で示したものに、その座標系に
おける 1000km グリッドを表示したものです。(原点は緯度0度、経度0度の点)

四国沖の地点に、この地図上において (12000000, 4000000) の点があります。この点から
原点までの「デカルト座標」における距離は三平方の定理より12649110.640674 m となります。
(ただし、そもそもこの地図上で二点を直線で引いた最短経路は、地球上(楕円体上)に
おける最短経路と一致しません。)
なお、この点は経緯度に変換すると (133.58679704 33.06103686) となる点なので、
楕円体を考慮した測地線長を計算すると 13944375.895 m となります。
③
平面直角座標系9系で 10km 四方のグリッドを生成しました。そのレイヤに属性を追加し、
初期値式はそれぞれ以下のとおりとしました。
area 属性 (楕円体考慮の正確な値。単位は km2 )
$area / 1000 / 1000
geom_area 属性 (座標値の数値のみで計算した値。単位は km2 )
area($geometry) / 1000 / 1000
k 属性 (簡易的に計算した縮尺係数)
sqrt(area_geom / area)
area($geometry) で計算した area_geom 属性はどのグリッドも 100km2 ですが、
楕円体を考慮した $area で計算した area 属性は位置によってまちまちです。
縮尺係数 k で色分けを行うと下図のようになります。

東西 90km までは k < 0 であり、実際の楕円体考慮の面積の方が大きいことを意味して
います。これは、平面直角座標系は基準子午線における縮尺係数が 0.9999 となるように
調整する処理が行われているからです。
東西 90km より遠い範囲では k > 0 となり、実際の楕円体考慮の面積よりも、当該
座標系上の座標値によるデカルト座標による計算の方が大きいことを意味しています。
これは、横メルカトル図法であるため基準子午線から東西に離れるほど地図が引き伸ば
されているからです。またそれは距離が離れるほど急激に増えていきます。
(真球の場合、基準子午線との角距離を θ とおくと 1/cosθ となる。)