A little background for you, Navarro: You'll notice that wiggle() and loopOut() don't take any properties as parameters. That is because they are both member functions of the property class, meaning each must be called as a child object of a particular property (e.g. transform.position.loopOut()). When you call loopOut() without appending it to a layer, you are implicitly appending it to the layer "this", which is the object-oriented-programming-speak for "the object I'm currently operating inside". The expressions interpreter automatically adds the "this." for you.
Hopefully this will help you understand why you can't use code such as "loopOut().wiggle()" or "wiggle().loopOut()". The reason is that loopOut() and wiggle() don't return properties, they return values in the whatever form their parent property dictates (single numerical values for most properties, arrays for multi-dimensional values, etc.). Neither function is a member of the return value of the other function. This is why using the two in conjunction requires that each be applied to a different property.
That said, it wouldn't be terribly hard to do the looping yourself. Here's an expression that loops the transform and its wiggle:
newTime = time;
if(numKeys > 0 && time > key(numKeys).time){
loopDuration = key(numKeys).time - key(1).time;
newTime = time % loopDuration;
}
wiggle(10, 50, octaves = 1, amp_mult = .5, t = newTime)