With the first proposal it’s possible to add the block number in addr:unit and the judet in addr:county (useful because in Romania the municipality with the same name in different county).
Apartment building blocks: Bl. B3, Zona Dorobanților, Timișoara - those are slowly becoming deprecated as most municipalities are giving them standard addresses, but they are still used or not yet changed in a lot of cases. For those I suggest using “addr:housename” for apartment building name (Bloc B3), “addr:place” for zone name. If the apartment building has both naming schemes than there is no overlap and one can tag both. Thus bl. B3, Zona Dorobanților can also be referred to as Str. Viorelelor, nr. 7: addr:street=Strada Viorelelor, addr:housenumber=7, addr:housename=Bloc B3, addr:place=Zona Dorobanților
Old village addresses: Sat Sânpetru Mare, nr. 365 - in this case all houses in the village have a continuous numbering scheme and no street name. Here I propose to use “addr:housenumber” together with “addr:place", although in most cases the same name will be on place and city this is a good indicator that the missing street field is not by mistake, but because the village still uses the old scheme. Recently also a lot of villages have transitioned to standard addresses.
For additional fields, for example inside apartment buildings, we have usually Sc. (stairway/entrance) and Ap. (apartment), occasionally also Et. (floor). While apartment number can easily use “addr:unit”, floor can use the “addr:floor” tag, I don’t really know how one can tag the stairway. However I believe it is more important to firstly get to a schema for entire buildings as individual apartments are rarely mapped.
Taking this into consideration I propose for the iD template to look like this: