constantp([]) --> true and polynomialp([], [x]) --> true



Since constantp([]) is true, polynomialp([], [x]) is also true (by default, polynomialp requires that polynomial coefficients satisfy constantp).
I doubt that is what users expect. The user documentation for constantp says (in part)

     An expression is considered a constant expression if its arguments are numbers ...

Hum---the arguments of f(42) are numbers, but constantp(f(42)) isn't a constant.

--Barton