John gifted Ben something (ohne 'with')
halte ich nicht für unüblich.
Ich halte 'gave him' für weitaus verbreiteter, aber 'gifted him' nicht für reserviert für Stiftungen oder göttliche Gaben. Ich sehe das so ungefähr wie 'bekommen', was für mich im Dialog immer etwas steif klingt (ich würde 'kriegen' sagen), aber deshalb kein sonderlich formales Register ist. Allerdings sage ich selbst 'to gift' eigentlich nie, deshalb wären andere Meinungen gut, ja.
Re dem 'song': Ich würde schlicht sagen 'Last year I wrote a song for you', oder, wenn das schenken reinmuss: 'Last year I gave you a song I wrote". Wie oben schon gesagt, wird 'give' in dieser Art Kontext sowieso als 'schenken' verstanden.
(Mir war übrigens noch nie bewusst, dass 'gift' theoretisch das Substantiv zu 'give' ist. Klassischer Heureka-Moment.)