I do not see a point for this feature to be added, to be honest, though it is feasible.
If you skip the call to "setup", then the first time you call log() you will have to allocate memory for the Scope object. @LiamDonovan, I believe that C++11 feature you describe would make it do the same, right?
It would require either a mode switch (and consequent audio dropout) upon the first call, or a threading system, so that upon the first call to log a background task is started to allocate the buffers and successive calls to log are inactive until the buffers are ready.
I think that providing flexibility to compensate for programming laziness is going to cause troubles later on and I would not encourage that.
Incidentally, there is an overload for log which takes a float*, that might somehow work around your problem in specific usage patterns: http://docs.bela.io/classScope.html#a1fb0a945352e031679916b512375b7ad
Even more incidentally, I am not currently happy with the fact that log behaves differently in WriteFile and Scope, so maybe we should converge to a coherent behaviour.