I don't think it should be enabled by default. It's common to expose keepalive and other TCP settings as an option, like libpq does, but it's not usually enabled by default, and it might be an unwelcome surprise to some existing applications.
In particular, if you have a dialup connection, you do *not* want an idle connection to keep sending periodic keep-alives, because keeping the connection open costs money. It's not as big a problem these days as it used to be, but still.
Libpq's keepalives option is on by default.
Oh, I didn't realize that.
So currently psqlodbc's keepalive is enabled when libpq is used(in case ssl used etc) otherwise it is disabled. Though I am about to enable keepalive by default, I'm not sure which should be the default.
I guess it would be best to enable it by default in psqlodbc as well, then.