Categories a computer scientist should know about
Note that most of the categories you considered are 'abstract', i.e., they require structure or properties of an abstract category. As computer scientists we should also be familiar several concrete categories which turn out to be useful:

Concrete categories


Set
Set$_{\mathcal P}$ (objects are sets, morphisms are relations)
Rel (objects are relations, morphisms are functions preserving these relations)
Pred (objects are predicates (= subsets) morphisms are functions preserving these relations.
Posets
$\omega$-CPOs
Nominal sets
Lawvere theories


Abstract categories


Functor categories
Presheaf categories, in particular, monoid actions, which are equivalent to finite automata iianm
Locally presentable categories
Monads
Enriched categories (in particular, O-categories)
Kleisli and Eilenberg-Moore categories
Embedding-projection categories
Profunctors


Also, sometimes properties don't commute on the nose, and the structure under consideration is of higher-dimensional (i.e., 2-categorical).

As to your question 3: you can define a category without mentioning objects at all (though it's conceptually clearer if we do mention the objects).