Do we need wal_keep_segments when we have archive_command?
No, wal_keep_segments and archive_command are independent from each other.

As soon as a WAL segment is finished, it will be archived, no matter how wal_keep_segments is set. wal_keep_segments keeps the file from being deleted at the next checkpoint after it has been archived.