If you design the system correctly, flickering should not be visible to the human eye. Obviously that depends on factors like clock rate of your transmission and your coding technique. As long as your signal is reasonably DC balanced and your modulation rate switches faster than the human eye can detect (say > 60Hz), you should be in the clear. The IEEE 802.15.7 working group [0] proposes clock rates of 200 kHz to 120 MHz, which all should be fine.
As for a separate IR emitter/photosensor, in theory it could increase range. Range ends up being decided by a bunch of tradeoffs and channel conditions that effect your Bit Error Rate (BER), which increases the further you move away from the source. The major factors that effect BER is the noise in the room (the ambient irradiance levels of other light sources), your transmission power, photodiode sensitivity to your wavelength, filtering quality, area of photodiode, and forward error correction quality. So moving to a wavelength with less noise certainly would help tremendously, assuming everything else is equal.
> ... and your modulation rate switches faster than the human eye can detect (say > 60Hz) ...
I can pretty reliably see pulse rates up to ~120Hz. I know of many others who can, too. :) So, please, please, please don't give people the idea (even inadvertently) that pulse rates below 120Hz are going to be undetectable. :)
The usage for low power devices is tricky. I suppose if you constantly broadcast for the specific device in range a sleepy device could pickup any desired changes but its a but tricky.
Do you notice the LED flickering during transmission?
Would using a separate infrared emitter and photosensor increase the range?