"Дать" - это нормальный бинарный предикат: Дать(что, кому).
Нормальный предикат получится, если глагол поставить в изъявительное наклонение и одно из времен, а не в инфинитив. "дал(что, кому)" - нормальный предикат. "Дам(что, кому)" - тоже. А вот "дай(что, кому)" - не предикат ни в каком месте, как и "дать". Впрочем, предикатом является, например, "нужно дать (что, кому").
В любом случае выражение естественного языка "дал конфету любому" неоднозначно: его можно прочитать и как "дал каждому по (одной и своей собственной) конфете", и как "дал некоторое количество конфет так, чтобы каждый имел доступ хотя бы к одной конфете (возможно, кому-то придется есть одну конфету на двоих, троих и т.д., а кто-то, наоборот, съест больше одной конфеты)", и как "выбрал кого-то одного и дал конфету только ему". Все эти выражения можно при желании формализовать, но иллюстрируют они только неоднозначность естественного языка. Так что если
Не помню где, кажется в какой-то популярной книжке по математике, разница между "для любого" и " для каждого" объяснялась на примере "дать конфету любому" и "дать конфету каждому"
то автор книжки создает в голове читателя совершенно ненужную кашу.