Crontab jobs don't see variables defined in /etc/profile

Is it true that Crontab jobs don't see variables defined in /etc/profile?
How to get around that?

You could source /etc/profile in your job or script being called. The cron environment is different than an interactive shell and is much more sparse. Check out chapter 12 in Expert Shell Scripting (Apress).

Using "#!/bin/bash -l" as shebang seems to bypass the problem as "-l"
makes bash act as if it had been invoked as a login shell. When bash is invoked as an login shell it first reads and executes commands from the file
/etc/profile, if that file exists.
But does using "#!/bin/bash -l" as shebang have any drawbacks?

I suppose it depends on the cron job. Having the full login environment is probably convenient but is probably overkill since it likely has many pieces that are not necessary to your specific job. Worse case is that it would introduce unintended conflicts either initially or down the road.

I have to agree with that. I'd start with a "set > somefile", edit out everything you obviously don't need and bring that into the script.