Auf den ersten Blick ja, auf den 2. aber nicht mehr.
Bei der Verwendung wird die Abfrage mit den Parametern (nicht den Werten) an das
DBMS gesendet. Dort wird die Abfrage dann werteunabhängig vorbereitet ( Zugriffsplan usw.). Anschliessend werden die Werte übermittelt und auf die vorbereitete Abfarge angewendet. Dies kann auch mehrfach geschehen, der Pepare muss nur einmal stattfinden.
Bei den Makros wird lokal eine Abfrage mit den konkreten Werten gebildet.
Makros kann man deshalb auch für Dinge verwenden, welche nicht parametrisierbar sind (Datenbanken, Tabellen, Felder ...). Parameter gehen nur für Werte.