What it "Assets in this source have public URLs" good for?
It let's you define "private" asset sources that you don't want publicly exposed on the web.


  Another question: when I upload assets to craft, sometimes they are put in the folder I expect, sometimes craft creates a subfolder (named like the asset-id I guess) and puts the file inside that folder.


If you're uploading these files through an Assets field, then that field's setting can define a dynamic subfolder path where the upload will be saved based on the contents of the entry/user/tag/category/etc. that it is being saved in.  Sounds like that's what you've got defined.