mi è venuto il dubbio se una funzione così scritta sia valida o meno...

Codice PHP:
function faiqualcosa ($argomento$echo false){

  
// fa qualcosa

  
if ($echo) echo $risultato
  
else return $risultato


ovvero... è sintatticamente corretto scrivere un funzione che può sia restituire un valore che scrivere in standard output il valore???

Da WIKIPEDIA:

Una chiamata di funzione è quindi un'espressione, che viene valutata per ottenere un valore.
[...]
In alcuni linguaggi, il termine procedura indica una funzione senza valore di ritorno, in altri si usa un tipo di dato apposito, detto void, per il valore restituito, a significare che la funzione non restituisce alcun valore.