As an update...
I have been using KiCad 5 for a week now (not full time of course - I have a real job) and I have come to like it. It does take some getting used to but none of the apps I considered has a great user interface, and KiCad is at least no worse than EAGLE and a few others. If you install it on a Mac you'll have problems getting it to find the footprint library due to errors the installer makes. I have already posted these on the KiCad forum.
Once you have it working and get used to it, you can lay out a board fairly easily. The schematic files it generates are directly readable by OSHPark. It can even import from EAGLE.
One thing I still don't have working yet is auto-routing. As far as I can tell, KiCad does not have its own auto-router and I'll have to integrate it with free route or something like that. There are instructions to DL another package and take a jar file from it. I had some success on me Windows 7 box but absolutely none on my Macbook. Yes, I know, auto routing is Satin! I still would like to have it at least to generate a starting point. That said, the "push and shove" feature is pretty good.
A big difference from EAGLE is that in KiCad the footprint of a component is not tightly coupled to the component. So, when laying out the schematic, I place say a resistor and then, later on, I tell it if that resistor is a thru hole device, SMD 0805, whatever. I have come to like this. It lets me zip through the schematic more quickly and just focus on the circuit. When I do the board layout I can then decide what footprint I want and change it without changing the entire component. The DigiKey library, though, does contain components with footprints.
So then, so far so good.
This is not a complete list, but...
PROS:
Completely free with no limits
Imports EAGLE projects quite nicely
Fairly easy to use once you absorb the learning curve.
CONS:
Version 5 has a different interface from earlier versions, so when you go through the older tutorials, video or text, that can be a bit frustrating.
Having separate apps for each bit or major functionality requires a little bit of extra effort. For example, you have to remember to generate the netlist from the schematic editor before launching the board editor, and then once the board editor is launched you have to remember to load the netlist. If you make changes to the schematic you have to then load them into the board. In practice, this is not that hard.
Poor auto-router integration, if any.