I've been very happy with
Scythebill. It's cross-platform, open source, and free. It keeps the data in an xml file - which means that if it is abandoned eventually (as happens with all software) the data is still accessible, and not in some proprietary format.
You have some choice of taxonomy (IOC or Clements), and the world list is updated regularly to reflect changes. Data entry might not be to everybody's taste (it's on a per date basis, and so not so good for entering trip lists, where a per species entry would be faster), and contains a lot of info regarding subspecies (often the geographical separation as given might be sufficient to allow you to determine what you've seen to subspecies level, preparing you for futures splits). It has an auto-complete feature, and now contains a lot of alternative names for species so you don't have to worry about, eg, US vs English names.
It allows you to mark birds as heard only/introduced, etc, and then gives you the option later to exclude such records when you produce lists.
You can build your own tree of locations, and you can do this to whichever level of detail you like. You can get it to export lists of all kinds (you can restrict locations, families of species, criteria such as heard only, etc) to useful formats, including one for EBird (you can also import lists from EBird).
Hence this allows you to keep your own data, but also to support EBird by submitting your lists without having to enter your data twice.
I'm just a satisfied user, but the developer has frequented birdforum in the past, and is prepared to listen to suggestions for additional features.
Andrea