I got confused by this too, and spent a while fruitlessly messing with the linker files - I'm sure I'll work them out eventually, but I haven't yet!
Anyway - the reason for memcpy getting called is that gcc decides that you have a loop that it thinks would be more efficient if it was done by memcpy. It seems on Epiphany this is generally wrong. To disable this behavior add the -fno-tree-loop-distribute-patterns option to gcc.
Mike