Damn. You're (mostly) correct. I just tested it extensively, was going to post a video showing it always gives a spell, but I just ran good when I tested it last night.
If you are missing a level 1 to level 4 spell and cast blood sacrifice, you always get back a spell. But this doesn't happen for level 5+, I didn't do enough to get a sample size but it is probably 33.33% if you have all 9 spell levels, 50% if you have up to 7. I didn't catch this until now because the spell I spammed the most was minor grimoire imprint, and that was always restored with one blood sacrifice. By the time I was casting higher level spells I typically had brilliant, plus Wael to make it harder to track.
My bad Elric. I guess blood sacrifice is working more or less the same as vanilla, though it seems weird to me the description doesn't say there's a *chance* you get a spell back, it says "variable raw damage to self to restore a proportional level wizard spell resource". I mean I get now it first does the damage, then checks if there's a missing spell in that proportional level, then restores if missing, if not, damages you and does nothing. Would make more sense (to me at least) if the programming first checked for what was missing, then rolled for damage if missing multiple spell tiers, otherwise does the damage corresponding to whatever tier you're missing and gives you that back.
One thing to note about changing from 4/7/9 to 3/6/9, though, it affects the probability rolls significantly when your highest spell level is either 4 (goes from 100% to 50%) or 7 (1 to 4 go from 100% to mixed 100% / 50% and 5 to 7 go from 50% to mixed 50% / 33%). I'm guessing, if the *sometimes return a spell* behavior is intentional, that the devs did 4,7,9 because level 7 is where multiclass caps and multiclass blood mage plays a lot better when your highest level spell comes back 50% of the time instead of 33%. And they made the level 8 to 9 spells hardest to get back. That also corresponds with doing the most damage. With BPM you get high tier damage on L7 instead of medium tier, and you get medium tier for L4 instead of low tier.
One more thing, I'm not sure if blood mage is even worth using anymore unless you're solo. You can't reliably get back spells, and I guess you couldn't in vanilla either, but in vanilla there's no recovery penalty or healing malus so you can spam the sacrifice to get back the spells you need. I agree that is a little OP (though nothing compared to grimoire imprints), but having to cast on average 3 times for one level 7 to 9 spell means you're going to basically always have the severe healing malus if you mostly cast, and meanwhile half the enemies have +15 accuracy vs all your defenses. And you can't empower, which in vanilla isn't that big a thing but BPM buffs empower, right? So I need a L8 spell, I might have to cast eight or nine times with bad luck, and with the inability to heal that is just going to kill me. An ultimate run may actually be impossible, now. And I know, not intended for that, but to me it's kind of sad.
Think I might just remove the blood sacrifice change, if I knew how to do that...
The healing malus is a good nerf, OR the recovery time, but both, especially combined with 4/7/9 to 3/6/9 make the skill almost unusable because of how random spell restoration is for L4+ spells. It also encourages multiclass, because again, the high tier spells are impossible to get back reliably without taking massive massive damage that you can't heal.
One could maybe work around it with an infinite supply of healing potions and patience. Blood sacrifice, miss, wait 6 seconds, heal self, blood sacrifice, miss, wait 6 seconds, heal self, blood sacrifice, miss, wait 6 seconds, heal self, blood sacrifice, miss, wait 6 seconds, heal self, etc.
Honestly those potions of enlightenment seem way better than blood sacrifice now. Yeah it takes 30 seconds for a spell but 3 casts of blood sacrifice with intermittent healing takes just as long, and sometimes you'll need more casts than that (sometimes less, but in an iron run it's only the more that matters). But with potions of enlightenment, you can actually do things while waiting for class resources to replenish and aren't taking massive damage in the process.