It's not necessary to add extra code for direction (code above) ?
Your code already includes the direction switch, that's why the encoderPos is either incremented or decremented.
In horizontal position var encoder0Pos would be 0. Code will increase or decrease variable by 1 depending on CW or CCW direction?
It's on you to decide that, you have to calibrate it.
encoder0Pos will be counting forever, that means that if you keep turning into the same direction, the serial message will become longer (up to 6 characters), costing more time to transmit..)
Correct, but with a statement like this, you can change that:
encoderPos = encoderPos % 1024;
This way you alway get the same value for the same position (given you calibrated the sensor in some known position).
for higher resolution encoders, there is a possibility that this sketch will not see every individual step.
Theoretically correct, but in practical live you won't have that problem. For one the sensor you mentioned already has a very high resolution and for the other Arduino is doing the stuff in the loop perhaps 100'000 times per second, so if you turn your picture-monitor completely around once per second, it still has 100 loop runs to detect the movement of one step. I'd start with that and if you run into problems you can later change the code to use interrupts and you'll probably never loose a step anymore (if you're not turning it faster than the sensor can react, it has the limit of 6000rpm).
Pulldown resistors (10k) are going to be needed on the inputs in Interrupt Example from arduino playground?
You don't need the pull-downs with your sensor because it already includes these parts.
Does I need also Low pass or Kalman filters for smoothing sets of data?
I don't think so. If the sensor is giving an exact signal (and I believe it will do), you won't get measurement errors and these filters are to flatten out these errors.