When a bug is already assigned, a change of assigned_to should probably require explicit user action, especially if the current assignee already has non-obsolete patches in the bug. The situation I've encountered more than once is one where I add a patch to a bug which already has other patches attached from the main assignee. I suspect this kind of collaboration is more common than the case where you take over an abandoned assigned bug.
I really thought I already had a bug for this, but I guess I never filed it. Yes, this is a pretty major nuisance. One thing is that there's always an assignee, it just starts as the default. Which is not guaranteed to be firstname.lastname@example.org; I think it's probably settable per-component or something. And theoretically the default person might be someone real, though a quick glance at bmo's configuration can probably rule out that possibility. So I'd guess that it's ok to just check whether the assignee is the default assignee or not. Btw, if you remember it, there's a --no-take option. But I completely agree that the default should be to not take the bug if the assignee is already set.