Well, you could have reusable function and yet use it with same data time and again.
I have seen two variations of data driven definitions -
1. Being able to execute same tests again and again with different data set. This is very common.
2. Data driving the tests, which means your application navigation. verification change with respect to data being supplied to test. Frankly, I have never seen any practical implementation of this approach of data driven testing.
Not sure if i answer your question. But wanted to share it any way.
~ seleniumtests.com