I tried it with both an arrow and a steel dagger, the steel dagger did get an updated 0.1 carry weight, the arrow didn't.
I did it using this script:
Scriptname Whatever extends ObjectReference
Event OnActivate(ObjectReference akActionRef)
If GetLinkedRef()
GetLinkedRef().GetBaseObject().SetWeight(0.1)
EndIf
EndEvent
Well, the change was not visible. But I'll check using the Player.getav carryweight. Thanks for the suggestion!
Edit: Alas, carryweight remains the same, at 300.00 before and after I picked up the arrow. But wait, isn't 300 the max carry weight, rather than the current carry weight? I'll check again by setting the arrow weight at 5 and see if anything noticeable happens.
Edit: Same result. :-/ 97 current weight before I picked up the arrow and 97 after.