You don't need to persist your bookmarks with a app.dosave() actually if this is a published app then your users most likely aren't even allowed to persist changes to a app through doSave().
Your bookmark will be saved scoped to that user as a un-published bookmark. Also try saving your bookmark with a human readable name and not a guid as that may screw things up, strange I know
Yes I am using an authenticated user. I am not sure what has changed but it now seems to be persisting bookmarks without the save - I am sure I had tried this previously without luck but apparently I hadn't!
Even with the GUID as the name everything seems OK - it would be hard to give a truly unique human readable name within the context of the application.