I am a lapi enthusiast and I debugged this for you.LAPI does not have the ability to "Restore" public access .
It can only Add,Update or Delete ACL's.You can give more permissions to an existing PA for eg if PA had
See,SC then you can add more like modfy by doing this
doc.SetObjectRight(volumeid,dataid,LAPI_DOCUMENTS.RIGHT_UPDATE,LAPI_DOCUMENTS.RIGHT_WORLD,doc.PERM_SEE|doc.PERM_SEECONTENTS|doc.PERM_MODIFY,0);
You cannot delete the world perm thru lapi.
Contact OT support to see if you need a patch for this.But here's my diagnosis tracing thru builder .The oscript routine while you do the same command thru the GUI calls NodeUtil.WorldPermEnable which the LAPI call does not all it can do is Add,Update and Delete.The acl of -1 goes thru the 'Update' section of oscript code but it does not call the routine the GUI calls that is why you do not see any error as well as you don't get what you wanted.
Attached a small java file I used to debug.
Since LAPI is in maintenance I don't know if OT will take a bug fix or not.If you know oscript you might be able to call the same thing that OT does.