Let me clear this up ...
1) First, dense mode sucks for tons of reasons -- don't use it. I absolutely hate vendors that use this. It really isn't hard to setup a proper PIM-SM/MSDP anycast RP topology. I understand you're learning multicast so I won't yell at you anymore

2) As it has been said, 224.0.0.40 is auto-rp (discovery). It wouldn't be very automatic if it wasn't enabled by default, so that's why it is always there. It will only go across dense mode/sparse-dense mode enabled interfaces. If you want to use auto-rp but don't want to use sparse-dense mode, use "ip pim autorp listener". This will forward auto-rp messages across sparse mode interfaces (to be more technical, it turns on dense mode only for 224.0.0.39 and .40 and forwards on all PIM interfaces)
3) You won't have an RPF neighbor if the source route for that (S,G) doesn't have a valid PIM neighbor on it. Also, if you are doing "sh ip mroute" on the router with the attached source (your ping), there wouldn't be an RPF neighbor since it is itself.
4) The (*,G) entry for PIM dense mode isn't actually used for any traffic forwarding like it is in sparse mode. It's more of an accounting thing. If you received any traffic for that group, all dense mode interfaces in the OIL would also receive a copy. If you look at the output from your first post, you'll see "stopped" on the (*,G) since it is never used for forwarding.
4b) Now you'll ask why the (S,G) OILs don't line up with the (*,G) OILs. That's because, like I said, the (*,G) is used for accounting. Notice in your first post you have "P" for pruned on your (S,G) routes. You can prune the (S,G) route, but then dense mode will flood that again to all OILs in the (*,G) unless you configure state-refresh. Since they don't match in your first post, that would normally mean the router on Fa0/0 sent a prune to R5. However, since R5 is a stub, it actually sent the prune to R8 since it has no (S,G) OILs for that group.
5) Not being able to source multicast pings from loopbacks is a known IOS limitation, that's all I'll say about it for now. Honestly, in production, I never needed to use this anyway, nor does anyone.
That should answer all your questions.