If the flight is 5 hour or less, I prefer non-stop. Over 5 hours I prefer a direct flight with a stopover. First, you have the thrills of additional landings and take offs. Secondly, you might get a chance to stretch your legs and do a bit of duty-free shopping and/or aircraft spotting.
Many years ago BA
(or BEA as it was at the time) flew LHR
with intermediate stops in Rome and Athens. I really enjoyed these short hops on the Tridents. They then changed it to a non-stop flight that at some stages became rather boring.
The second question must be difficult to answer. Obviously with additional landing charges and more fuel consumption on take off, it must be cheaper to fly direct. On the other hand the airlines might pick up more passengers (assuming that there were no restrictions on local traffic), so it is more profitable to make a stop.
MOL on SRB's latest attack at BA: "It's like a little Chihuahua barking at a dying Labrador. Nobody cares."