Hi David. Someone will correct me if I'm wrong, but I don't think you shouldn't need to mess around with http rewrite to do this - Moodle should be obeying your wwwroot settings. If it isn't, you should probably fix that - for example, you may have some hard-coded URLs in your database or some content coming from someone else's HTTP server in your theme or something? Look at the resulting HTML source code or your access logs and see if you can find the HTTP content and try to figure out how that got there.
If you want to bounce people who show up at HTTP URLs direct to an HTTPS URL the ModRewrite stuff should do it, but is it actually working? (Test this with a static file to make sure.) I'd have thought you'd need an [R] flag or something to tell ModRewrite to actually redirect the browser to the HTTPS URL. What you've got looks to me like it just alters the setting internally to make your web server pretend to itself that you came through your HTTPS url.
But even if it's working, the ModRewrite change shouldn't fix your grey globe problem anyway. This may depend on the browser, but if your Moodle page pulls some content from an unencrypted, unvalidated HTTP page, which then sends back a redirect to an encrypted, validated HTTPS page, it wouldn't make sense for the browser to say, "OK, great, all secure", because it doesn't know that the unencrypted, unvalidated HTTP page is sending it the appropriate HTTPS URL.