OMake pitfall around multiple targets

Now I made a clearer example. Some bug or confusion around multiple target rules:

# Checked by OMake 0.9.8.5 (release 3) build [Sat Nov 7 15:22:19 2009] on rothera from Ubuntu
F1(v)=
   echo $'F1(v)'

F1_a(v)=
   echo $'$(F1_a v)'

F2()=
   echo $'F2()'

F2_a()=
   echo $'$(F2_a)'

# Which is not an OMake shell command.
# ls and echo are OMake shell commands, for example.
UnixCommand=sleep 0

G1(v)=
    echo $'G1(v)'
    $(UnixCommand)

G1_a(v)=
    echo $'$(G1_a v)'
    $(UnixCommand)

G1_b(v)=
    echo $'$(G1_b v)'
    $(UnixCommand)
    return

G2()=
    echo $'G2()'
    $(UnixCommand)

G2_a()=
    echo $'$(G2_a)'
    $(UnixCommand)

a b c:
    F1(0)         # Only once!
    $(F1_a 0)     # 3 times!!! 
    F2()          # 4 times!!!! # execution order is strange! # relate with http://bugzilla.metaprl.org/cgi-bin/show_bug.cgi?id=713 ?
    $(F2_a)       # 3 times!!!
    G1(0)         # Only once!
    # $(G1_a 0)   # Error: tries to evaluate something empty!
    $(G1_b 0)     # 3 times!!!
    # G2()        # Error: Non digestable value
    # $(G2_a)     # Error: tries to evaluate something empty!
    touch a b c

.DEFAULT: a

.PHONY:clean
clean:
    rm -f a b c