Hi,
I agree with your diagnosis. You are using pgsql right? I believe this bug was fixed long ago in MS SQL and other dbs but somehow I missed it in the pgsql version. I have fixed it in my copy and will have the fix in svn trunk by later today. Unfortunately the extra % is not in the stored proc but in the code that assigns to the parameter value so its not possible to fix it by just editing the stored procedure.
Its really a funky way to delete, I think I should change it now to delete by pageguid instead, but originally the table did not ahve the pageguid column so in really old versions of mojoPortal that have been upgraded over time, some rows in the table may not have the pageguid populated, so I continued to use this old method.
Best,
Joe