Short answer: no.
Want a more technical answer? Okay, hold onto your hat.
There is no law or rule in Congress has outright prohibits what matter may be contained in any particular bill. As a result, one bill can deal with many subjects, or mostly one subject with a bit of something else thrown in there.
However, that does not mean that it is easy to do such things covertly, for several reasons.
One, both chambers of Congress have rules that make it tougher to sneak stuff into a bill. In the House, before a bill is brought to the Floor, the House must pass a “rule” that determines how long the debate will last, who controls the time, and what amendments may be offered. This prevents members from offering amendments that are off-topic, so to speak.
The Senate allows any amendment to be considered to any bill, with a couple of very narrow exceptions (ie, under cloture, a procedure used to stop a filibuster, an amendment must be “germane” to the bill. You don’t want to get any details on what germane means, believe me). However, there is a point of order against offering a legislative amendment (read: changing laws) on an appropriations bill (which provides funds). Also, if an amendment adds money to an appropriations bill so that the bill would bust the budget, it must get 60, not 51, votes in order to pass.
There are also rules on how bills can be reconciled in a conference committee. Suffice it to say that these rules make it harder to add extraneous material.
Two, although most senators and congressmen don’t read the legislation they vote on, there is a vast staff on Capitol Hill that does – not to mention the Administration, lobbyists, public interest groups, etc. If bogus stuff is in a bill, people will know about it. Its possible that some logrolling and horsetrading may keep that material in the bill, but it is pretty much impossible for someone to put something into law without anyone at least noticing it.
Three, the stage of the legislative process most conducive to adding unrelated matter is generally (but not exclusively) during the drafting or the committee markup of a bill. Note, that’s the earliest stages of the legislation, and many things get weeded out as the bill progresses.
The most concerning time for these things to be added is during conference on very large bills – it is very difficult to keep track of a bill with 300 provisions. Unfortunately, the partisan atmostphere in Congress over the last few years has meant an increase in these shennanigans – at least from my observations – followed by a bill being forced to a party-line vote without time to read its contents. It’s a bad way to operate a legislature.
So, once again: yes, it’s possible to add unrelated material; yes, it happens very often (but usually on small, technical matters); but no, it is not all that easy to “sneak” something past 535 members of Congress and a staff of 12,000 employees.