If people say vvvv is single threaded, that means that the main application has 1 thread, that will calculate a new frame every X milliseconds (or as fast as possible). Since the nodes are connected to each other, you have to start at the top-most node, and ask ‘calculate your new output now’. You have to wait for it to finish, and when you have the result, you can ask the next node down the line ‘calculate your output now with this input (that I just got from the node above you)’. In that sense vvvv indeed is single threaded.
But of course that doesn’t mean that a clever node can’t start calculating new values in a seperate thread, while waiting until the next time the ‘main thread’ asks for the current output. And this is typically true for video, where you will want to decode a new video-frame, and copy it to the graphics-hardware beforehand. Then, when vvvv asks for the next frame, you can immediately say “here it is, I already decoded it for you while waiting, because I knew you were going to ask :)”, instead of starting that whole process at that time, and making everything else wait until you have finished.
I hope this makes it a little more understandable.