The US does not have a dominant hub like London or Tokyo are for their respective countries, the business is spread across multiple gateways. The fact that these are served by separate competitive carriers, all of whom wish to serve the main overseas points, also leads them to move to smaller aircraft and more of them.
Across the Pacific the reason behind sticking with the 747 is indeed cargo, it can carry much more on a long haul than the twin-engined aircraft. There are so many transatlantic flights that the freight is spread more thinly among them than the situation across the Pacific, with more freight overall, a higher freight-to-passenger ratio, and less services to compete for it.
When the 747 first came along and Pan Am was dominant for US intercontinental business and could channel it through it's own chosen hubs like JFK, it is noticeable that they were easily the largest 747 operator. Things have changed.
Once you get down to small fleet numbers it is no worth having another type. American might take more revenue with a few 747-400s rather than 777s on JFK to London and similar but would lose out on all the costs of having another type. BA have 747s anyway for other jobs so not an issue for them to extend the fleet to the JFK route.
There are whole books on fleet planning management, and probably as many different approaches as there are airlines.
When European airlines put the A380 on Europe to USA routes, the results will be very interesting, because when a comparable thing happened when the 747 came along, those airlines without them quickly lost market share.