Aren't you still having the problem of a push protocol, rather than a pull protocol?
You're still driving the Dac's clock from the transport clock (albeit on discrete lines)( = PUSH) , rather than using the DAC's clock, to clock data from the transport ( = PULL).
Yes, you can buffer the data, but where's the flow control to prevent buffer overruns / underruns? Unless you then modify the dac's clock rate, in which case you have just re-invented wow and fluter in the digital domain