Most people just don't understand them. They are pretty straight forward for the most part.
The only time you run into sort of unsolveable issues is when you are trying to combine expressions with deformers. And that's really only an issue because you cannot set the priority of deformers.
A lot of folks struggle because they start changing things willy nilly. Stick to Expressions, Use increments of 5 to give you extra wiggle room, and you can go quite far with very little hangups.

Howdy,
So I peaked at the file. A couple of things:
I'd reccommend never putting stuff at generators priority level. There's really like...no point. Unless you're doing crazy junk, with sds' and like deformers then maaaaybe, but generally speaking, for a standard rig, you never need to leave Expressions mode.
In general if everything is in Expressions mode, then it's just an order of operations thing. So it first looks at the priority number. If everything were at the same number, then it solves top of OM down. And then on an object, the tags would solve(i think) left to right.
So assuming all the same priority number, you can fix lags by adjusting the OM order.
But having said that, it's generally just not going to be as simple as that. Really, the simpler thing is to just adjust the numbers. That way Expressions 0 solve before Expressions 1, which solves before Expressions 2, etc.
So, when I open your file here's what I did to remove the lag:
1. I moved the mesh and deformer below the rig itself. I think it's generally better to have the rig and everything above what you are deforming.
2. Switched the SplineIK tags from Generators to Expression
When you do those two things, there's still a lag. The reason is because those tags reside under BD_Head_jnt. BD_Head_jnt has a constraint tag on it set to Expressions 60. Ok So 0 solves before 60. However, the positioning of the joints are a child of BD_Head_jnt. So right at this point the Behavior is Solving the SplineIK, Solving the head....which would put the splineIK not in the right spot. Hence the lag. So to solve it:
3. You can either Set the SplineIK tag's to Expression 60 or higher.
So if it's set to 60, because it's below the head, when c4d solves everything in Expression level 60, it solves them top down. So even though they're both 60, Since it's under BD_Head_jnt, it will solve after it. Or you set it higher than 60 it'll solve after.
Hope this helps and makes some sense.

So, I made some of the stuff for what Brandon showed in that video.
I was planning on making and releasing a new updated mixamo template in the character object that would give you IK or Mocap etc. Sadly, it's a complicate thing. I have fully FK rig controls you can use, but IK is harder to keep things matching. I have something that kind of works, but the elbows and knees are hard to keep in line with the mocap, and that's what's been preventing me from releasing anything.
You can do it manually each time, but that's a pain in the ass. Just use local rotation constraints on the parents that drive the controllers and you have mocap driving your ik and such, but setting it up each time is the pain and that's what I have been hoping to alleviate but have not finished yet.

You can bypass all of that by doing the IK tag on a chain of controllers instead of bones. The bind bones are constrained to the controllers. Then you can handle visibility between IK and FK by hiding or unhiding controls.
Here's what I'm doing: https://www.dropbox.com/s/mv2jwd3lpvn20s9/IKFKTest.c4d?dl=0

That's not true. Just because the IK tag is there it doesn't mean you cannot select the bones. In that file just select the bones and rotate them. It works and the IK will follow. At first glance, it actually is basically a live FK/IK rig simultaneously. It just would require you keyframe the values on the joints themselves to prevent popping and other issues.
The other thing I'd probably do is turn off align goal. Aligning the goal really does nothing good. It actually causes some pops in my quick testing of the file.
The way I would potentially use this setup would be to create a hierarchy of FK controllers, and apply the IK tag to that instead of joints. Then simply constrain joints to those controls. Then as far as switching between IK and FK, it would simply be hiding or unhiding some controls.
I'll have to run some tests, but it shows some promise.

There's pros and cons to both packages. Ones better in some areas, another better in other areas. I work in both, and I like both for different reasons.
For me it boils down to a couple of things: I think animating in Cinema is better and easier. But slower than in Maya. Maya has better playback speed for sure.
I like Cinema more. It's capable, just a little slower. Animation is animation, it's pretty agnostic. Films have been made without tools like you mentioned. It's keys and poses at the end of the day.
For what it's worth, I did Animation Mentor back in 2009-2010, and me and Kai re-rigged all the characters(Kai did most of the hard work) and completed the 18 month program using only Cinema 4D. So it's definitely capable.
Just use whatever you're most comfortable and most efficient with.

I think B-Spline is actually what you want. That I believe is more in line with Maya's Cubic Spline. If I recall correctly, Cinema's Cubic spline is a bit more like Maya's EP Curves, where the curve always draws through each point.

I don't know what's happening, but the character object has a single hierarchy bind hierarchy. you can either make the character object editable or switch to the full display. Then you will find the long hierarchy of joints under the object called. Bind_null. Select all of those joints and bake the animation down to them.
Once baked you can pretty much delete everything except that hierarchy, and export to unity or whatever.

It's not a bug. MAXON has incorrectly classified it as a bug. It is as everfresh said. When they are colored orange, they are part of a keyframe selection and the Record Active Objects button respects those selections. But the Attribute Manager is allowed to overwrite that manually.

A couple of bits here:
SHIFT is not what you wanna click to mirror upon creation of a component. SHIFT creates a new component but doesn't select it(Which is useful if there are no sub components of the component you create). CTRL is what actually makes a mirrored component as well. It will select both components. You can also do CTRL+SHIFT to create mirrored components but not select them(useful for legs when you don't have toe components.)
In your case, you created and adjusted the left side but still need a right. Don't worry, you don't need to re-adjust. Switch back to build mode, select the left components, choose Character>Character Builder>Copy Component. Then Character>Character Builder>Paste Mirror Component, and you should be all set.
Hope this helps

It's because the Add Walk button for CMotion simply moves your controllers into place positionally. It doesn't add any sort of rotations. You would need to add those into CMotion yourself. One would just be constant to rotate it down. Then one to rotate it more forward and backwards kind of thing.
CMotion is fairly limited. You probably are better off trying to animate it yourself.