We use Moodle as our LMS and then Captivate and Storyline equally.
When updates are required with our SCORMS, our experience with Moodle and Captivate has been that we can simply make the updates (typos, images, slide add/remove etc) republish and reupload - and learner progress is retained.
With Storyline and Moodle, we have discovered inconsistent behaviour - after updating the SCORM, the learner may have their progress saved, sometimes they will need to restart. Storyline's official statement, and in discussion with their support engineers is that they're adhering to the industry standard.
"When you update (overwrite) existing course files in your LMS or web server, learners who previously started the course won't be able to resume where they left off. They'll start over at the first slide in the updated course"
From my initial research this appears to be due to how the manifest is handled, and whether identifiers are changed (resulting in the LMS dropping learner progress).
My questions are:
I think this is one of those areas where each LMS and authoring tool has tended to go their own way a bit when "adhering to the SCORM standard". There's no guarantee they will all behave the same way.
The area I would encourage you to investigate is how your Moodle instance is currently handling any change to the Version field.
I have a sneaking suspicion that Articulate may change this field with every publish, but with Captivate the developer is expected to make this change. If this field is what the LMS is using to determine whether or not the progress gets ditched then that would explain your differing behaviours.
The problem of course is that if between versions you happened to change something that affected number of Interaction IDs or even their names, then your course reporting would be potentially compromised. So I think this might be why the Storyline people are preferring to go the safer route of always indicating a version change. That way they won't get the blame.
It's not an anomaly. Captivate has bookmarking turned on by default and my experience has been with at at least dozens of different LMS and that it has always worked.
There is a point when you make too many changes that bookmarking may not work. For example the slide a user paused a course may have changed so much that the LMS doesn't recognize it as the same slide, or maybe it has been replaced entirely. This would be rare for what I would consider normal course maintenance.
Adobe Captivate course slides all have unique identifiers which are stored in LMS variables based on the reporting standard in question. In the case of SCORM 1.2 the variable I believe is called cmi.core.lesson_location (no expert really).
For question 4 you probably want to ask that on an Articulate forum as apposed to Captivate. Again, I've never had a problem with bookmarking in all my time with Captivate.