Potrebbe andare ma non capisco perché fai tutto quel giro.
Puoi sovrascrivere la funzione direttamente con eval che userai appena ricevi i dati.

Esempio:
codice:
<!DOCTYPE HTML>
<html>
  <head>
    <title>Esempio</title>
    <meta charset="utf-8">
    <style type="text/css">
      
    </style>
    <script type="text/javascript">
      function addMarker(a){}; // inizializzo la funzione vuota
      addMarker("qualche cosa che non sarà vista"); // se la richiamo ovviamente non avviene niente
      
      // da qualche parte ricevo i dati da utilizzare come script per la funzione
      (function daqualcheparte(data){
        eval("addMarker = function(a){"+data+"}"); // con eval sovrascrivo la funzione e ci butto dentro la stringa script
      })("alert(a)");
      
      addMarker("eventuale argomento che sarà visto"); // ora la funzione funziona con lo script inserito al suo interno

    </script>
  </head>
  <body>
  </body>
</html>