Well, I just tested my theory and it failed. HFSC needs to be configured as the throughput bottle-neck with the root queue's "Bandwidth" parameter.
I will be testing more scenerios, like perhaps moving the actual link's queue from the root (root queue cannot change it's bandwidth dynamically, apparently) to an interior leaf queue (a leaf's bandwidth is dynamic). I will report back if find anything new. How the hierarchy of the queues is laid out is actually important, so I have some hope it may work. :)
It may be interesting to note that HFSC was not originally implemented with an "upper-limit".
https://github.com/freebsd/freebsd/blob/428b45aa532260e8c6ddf0217ec31db2234d29a8/sys/contrib/altq/altq/altq_hfsc.c#L39
Anyway, here are my results:
WAN Bandwidth set to 640Kb. (Less than real-world throughput of 666Kb)
pfTop: Up Queue 1-6/6, View: queue, Cache: 10000 16:55:57
QUEUE BW SCH PR PKTS BYTES DROP_P DROP_B QLEN BORR SUSP P/S B/S
root_pppoe0 640K hfsc 0 0 0 0 0 0 0 0
qBulk 1000 hfsc 214 76697 0 0 1 1 695
qACK 500K hfsc 1697 94153 0 0 0 3 211
qNTP 25000 hfsc 0 0 0 0 0 0 0
qTEST1 **1000** hfsc 1285 1500K 19 7521 38 9 **11K**
qTEST2 **6000** hfsc 3067 3792K 0 0 35 52 **67K**
You can see that the ratios between the 2 test queues are almost exactly 1:6.
These are the speeds recorded in my ftp client, "lftp", during the above test. The speeds are not pasted exactly as I observed, because I had to freeze the terminal with Ctrl-S.
tmp/linux-3.18.5.tar.xz.1' at 5651256 (11%) **63.2K/s** eta:11m [Sending data] progit.en.pdf' at 3180520 (56%) 11.0K/s eta:2m [Sending data]
WAN Bandwidth set to 250Mb.
pfTop: Up Queue 1-6/6, View: queue, Cache: 10000 17:01:25
QUEUE BW SCH PR PKTS BYTES DROP_P DROP_B QLEN BORR SUSP P/S B/S
root_pppoe0 250M hfsc 0 0 0 0 0 0 0 0
qBulk 1000 hfsc 14 2667 0 0 0 0 0
qACK 500K hfsc 34 1874 0 0 0 0 0
qNTP 25000 hfsc 0 0 0 0 0 0 0
qTEST1 **1000** hfsc 1592 1921K 0 0 0 27 **34K**
qTEST2 **6000** hfsc 1551 1940K 0 0 0 35 **46K**
As you can see, this test did not function as I expected.
Edit: "Bandwidth" and link-share's "m2" are set to the same value.