I would agree that it's more common to substitute on international flights, because, in many cases, the airplane ourbound drops off pax, then often turns around and comes right back.
For domestic flights this is rarely as simple; most of the schedule is not composed of "out and back" flights; for example, a given 757 might go SJC-ORD-MIA-LAX-DFW-SJC (with multple crews, of course) during the course of its travels. Thus, while substituting a 738 on the "initial" SJC-ORD leg if loads are really light might make sense, downstream, it becomes a possible issue. While it's simple enough to juggle our one hypothetical flight, if you multiply it by a days' movements, you'd have a whole project just tracking things. And I suspect that the cost of having to rebook passengers downline if you can't come up with enough seats is higher than the costs of flying empty seats (assuming it's not a habitual thing).