Yes there is a difference. The key word in the first is "statement" compared with "data set options".
I would suggest that you use the same data set for a source of variables. Then see the difference if you attempt to use a variable that is on a Drop data set option and a Drop statement in the body of a data step.
There is a timing element involved.
Another difference is that data set options can be used with any data set used as input or output with a "date= " or "out= " in a procedure. Most procedures do not support Keep or Drop statements.