A中过公共点的直线与直线l相交,不异面,A错误;
B、C中l?α内时,α内由无数多条直线与l平行,B、C错误.
直线l与平面α不平行,则直线l与α相交或在面内,即l与α有一个或无穷多个公共点,D正确.
故选D