The altitude is omitted when it is missing or not valid for a number of reasons.
are you just guessing - or do you have information from flightaware staff? in aircraft.json mlat aircrafts WITH altitude sometimes in mlat-array subkey there is an KEY altitude and sometimes not - have not seen a VALUE there up to now.
example with:
{"hex":"~2bbd80","type":"tisb_other","lat":51.357499,"lon":10.036774,"nucp":0,"seen_pos":22.8,"altitude":43025,"vert_rate":0,"track":14,"speed":519,"mlat":["lat","lon","altitude","track","speed","vert_rate"],"tisb":[],"messages":1170,"seen":22.8,"rssi":-49.5},
example without:
{"hex":"3c4a28","squawk":"2554","flight":"BER8680 ","lat":48.327414,"lon":10.582075,"nucp":0,"seen_pos":8.8,"altitude":25000,"vert_rate":0,"track":167,"speed":326,"mlat":["lat","lon","track","speed","vert_rate"],"tisb":[],"messages":24716,"seen":0.0,"rssi":-2.3},
No decent attempt can be made to MLAT the altitude … unless +/- 10 miles is good enough. 
+/- 10 miles precision in computed altitude is simply wrong in my opinion as the number of receiving sites increases with every feet - so just measuring which station in different range can receive a signal gives a much more precise altitude than +/- 10 miles because the earth is a ball and not flat and this frequency isn’t shortwave like radio amateurs use.
p.s. when above calculation is additionally assisted with runtime-data from signals and flightawares databases for flightlevels that are used for measured heading i’d say they are able to compute quite useful altitude numbers …
p.p.s. but by no means this is what i think that the derived altitude is from. just to explain that in my opinion +/- 10 miles is not the precision they could achieve if they would want to calculate mlat altitude they would be by far more precise. my simple question was and still is - ‘why is sometimes a sub-key (just the key - no value) in mlat sub-array of aircraft.json’ ?