You can't detect damage from a unit
so the first skill is uncodeable(the dps based on damage part)
Sure you can. Weaver's Germinate attack does it.
However, DotA's current engine can only detect how much damage a unit dealt
; it cannot check how much damage a unit may
deal. As an example, Weaver's skill works because an attack is needed to activate the skill, telling the trigger how much damage it is going to deal. However, we could not make a targeted, activated skill that dealt damage depending on your attack damage, since we have no way of retrieving that information.
For another example, look at Tuskarr's ultimate. It's impossible that it gives him a passive critical strike inside a disabled spellbook, because the factor that it's going to multiply damage with is variable. Thus, the extra, critical damage is triggered and in order to deal that extra damage you need to know how much damage was dealt in the first place.