1) una reference è un puntatore, praticamente, quindi è grande sizeof( void* ) e viene sempre passato per copia, e inoltre all'interno della funzione costa una dereferenziazione quando vai a leggere la memoria puntata.
Quindi in un contesto a 64 bit, const float32& occupa 64 bit aggiuntivi oltre al float32 e necessita un'operazione aggiuntiva per essere letto da memoria. Non esattamente una cosa furba

I dati primitivi come int, float, bool, char etc vanno sempre passati per copia, cioè il classico foo( float f ).
Così aiuti anche il compilatore a fare l'inlining, visto che può passare i parametri dentro gli appositi registri del processore e risparmiare un mucchio di letture e scritture sullo Stack.
Probabilmente riesce a farlo anche con le reference, ma non vedo perchè complicargli la vita.
2) premature optimization is the source of all evils.
Devi individuare qual'è il "contratto concettuale" di quello che vuoi fare, e poi farlo.
In questo caso quello che vuoi fare è "creare un nuovo oggetto con una nuova fixture" e riciclare la fixture è esattamente un caso di premature optimization.
Perchè la ricicli? Sei sicuro che sia pesante? Sei sicuro che sia complesso? Hai fatto dei test?
Se non hai motivi per ottimizzare, non ottimizzare
3) no, non è corretto scalare le posizioni, o almeno, dipende da che devi fare... dividendo tutte le posizioni per un ratio costante (ma allora perchè è un parametro della funzione?) scali lo spazio delle posizioni di ingresso...
però poi la fisica non è scalata, quindi quello che fai è una cosa abbastanza incoerente, visto che sostanzialmente ti limiti a spostare le cose, scalandole.
Se poi ratio non è nemmeno costante, allora è semplicemente privo di senso.
Quello che ti suggerisco è di togliere ratio in toto da tutto, e usare il sistema metrico del motore fisico.
Quando vuoi creare un oggetto ad una data posizione in pixel, dividi la posizione e POI la passi alle funzioni fisiche. "rendere partecipi" funzioni come CreateCircleEtc del rapporto metri/pixel non ha veramente alcun senso.
In sostanza la diagnosi di TheCrib è corretta: devi studiarti il C++ (o magari un linguaggio a oggetti più semplice) per bene perchè ti mancano un pò le basi