Hmm. I was going to say that I think that I liked the first one better (where the space was in the code, not in the ml string), but because it's a bit sentence-like (not entirely but the entire thing stands as one thought, right?), how about we just combine it into one string. Like so:

    $ret .= BML::ml( "...unauthenticated_openid", { openid => $form->{oidurl} } );
    ....
    ....unauthenticated_openid=[[openid]] (not yet authenticated)