I've been using freecad fairly heavily (hobbiest level heavily, so nights/weekends) for the past year and a half.
I can't recommend freecad for any project you'll put more than 10 hours, or 3 iterations into.
References suck in freecad. Sketches/constrains are okay, as long as all your references are in the sketch. If they're in another sketch or body, forget it.
Lets say you want to create two parts where a polar pattern of bolts align between the two. Top has a hole and counterbore, bottom is threaded. The most efficient way of doing that is drawing a copy on a piece of paper and write down the dimensions. then create two sketches on the two bodies and enter those dimensions. Which is dumb. Wouldn't it be nice to reference a constraint/dimension in another sketch? or use a master-sketch like fusion360? not in freecad.
freecad does have a reference system, but they're named references that are a pain in the ass to remember. And, there's no point since sketches lose their faces way too often. Modifying a sketch in the middle of the body history means risking all the other sketches just coming off the body and leaving you with a mess.
That said, i've used freecad to design fairly complicated assemblies that have electronics, gears, motors, bearings, and moving parts. iterating on the design just requires a lot of rework.