Specifically, Lorwyn had it as a straight-up additional cost. The DTK implementation is a bit different, with some problematic rules interpretations:
1.
Clone problem - a
Clone copying
Scaleguard Sentinels should get a +1/+1 counter if you controlled a Dragon as you cast
Clone. But at the time you cast
Clone, you don't yet know that you need to check for that! So either there must be a way to look back in time or all spells need to check what creature types you control when you cast them (not just
Clone-type cards because there's also a possibility of suddenly getting
Infinite Reflection on the battlefield etc.).
Clone has similar problems with sunburst cards, but I think that colors used for casting are stored standardly.
2.
Fork problem - a copy of dragon presence spell should never have the dragon presence active, as it was never cast, and so the condition can't be true. Spells cast from a copy of a card (for example
Draconic Roar cast from
Isochron Scepter) can still have the condition fulfilled. Spells that somehow resolve under control of different player (thanks to things like
Perplexing Chimera or
Gather Specimens) won't have dragon presence active as their current controller never cast them.
3.
Artificial Evolution problem -
Artificial Evolution can hit Dragon Presence spells while on stack and change "Dragon" to something else. When the spell resolves, it then has to check whether you revealed or controlled the new type determined by
Artificial Evolution. This is similar to the
Clone problem in that you might need to check something from the past you didn't know you will have to check. Also, it means that the full set of creature types of the revealed card must be stored for this case.