It is impossible because yearly images in Image Collections that you made did not preserve original scale of Landsat images (they have 111,319.49 m, 1.0 arc degree, instead of 30 m as you expected). So, expected 0.5 ha is not about 6 pixels. In these images, as Forest0, one pixel is corresponding to 1,239,202.88 ha; not 0.09 ha.
On the other hand, all images that you use for determining area (in ha because you divide by 10,000; not by 1,000,000 for obtaining km2) are empty because your conditions in these binary images do not work (they have not sense).
Following code snippet corroborates the obtaining of a scale different of 30 for Forest0 image (.gte(cc) condition in this image has not sense because unmasked value is 1 and cc is equal 10 so, obvious result is false and an empty image). However, in Forest0 image it can be obtained an area value; it is exemplified as follows.
var Forest0 = classified_1990
.selfMask().rename('Forest0'); //forest id: 0 /Nonforest id: 1
print('scale Forest0', Forest0.projection().nominalScale());
Map.addLayer(Forest0, imageVisParam2, 'Forest0');
var Forest0_area = Forest0
geometry: aoi, // a geometry
scale: 30, // scale = 30 for landsat 8; this is not true scale
print("Forest0_area in ha", Forest0_area.get('Forest0'));
As your aoi area was not adequately retrieved in your script, I assumed one rounded your points. Complete code is here. Following image has some relevant results of running the script in GEE console editor. However, you have to find an approach where scale is preserved.