Since 640k was hard-coded, no software made for DOS will use or require more conventional memory. Having UMB is way more useful.
That is not true, at least strictly speaking. There's a value in the BIOS data area that says what the top of available memory for DOS programs, and it's the canonical way for programs to know how much memory they can use. DOS itself loads in the lowest memory available, as do (most) drivers (if they're *not* being relocated high). So unlike, say, CP/M, where most of the time programs expected the bottom of RAM to be a constant 0100h and the OS stashed itself at the top of the TPA, DOS programs load at some variable starting address, which is easy on the 8086 because the segment registers allow fairly arbitrary relative addressing without having to use some kind of relocation routine in the loader. (Which was needed with many older 8-bit CPUs.) So unless a program is specifically making assumptions the algorithm is:
whatever DOS says the end of memory is - the start of memory after the resident parts of DOS = available memory for me
The hard deal-breakers that start coming into play is when you get to B0000 (MDA) or B8000 (CGA), since most PC-DOS programs write directly to video memory. Clearly you can't set the end of memory higher than those points on PC hardware. (Although there were options in programs like QEMM to just be stupid and relocate the text buffer hella high, compatibility be damned. There are ways to set up contiguous DOS memory up to almost 900K, although only a small subset of programs that use BIOS calls exclusively for video output will work under those circumstances.)
Note that a very important point about this: if you did have some kind of program that *assumes* the end of possible memory is the 640k mark and chooses *not* to go with the "official" value(*) then it's setting itself up for disaster because there are circumstances where the top of memory in a machine with 640k of physical memory is *not* the end of available memory. 286 and higher machines often use 1K of memory off the top for an Extended BIOS Data Area; if you tromp all over this you're going to wreck things. (Also note that "full operating mode" on XTIDE does this on 8088 machines, which is why it's generally disabled on, say, Tandy 1000s, where the top of memory will move depending on what video mode you're in.) TL;DR, making assumptions is stupid, so a program that's not stupid should be able to use 704k contiguous if there's not a good reason for it not to be able to use it.
Good reasons why you can't use 704K:
1: You have an EGA or VGA card. (or something else that wants the A page.)
2: You have a system BIOS or add-on card that sets up an extended data area that can't be relocated higher.
Minus those two things it's a perfectly valid strategy, especially if you're really stuck on pre-MS-DOS 5.
(* Do you have an example of a program that's hard-coded to expect the end of DOS to be exactly 640k? What happens if you run this on an AT with a EBDA?)