How do I use the global class \Drupal static methods to access services? Is there a difference between calling \Drupal::service('config.factory') and \Drupal::configFactory()?

Is it better to use the second one?

Can \Drupal be used to do something else than calling services?

The documentation says: 


  Accessing services in global functions
  
  The global Drupal class provides static methods to access several of
  the most common services. For example, Drupal::moduleHandler() will
  return the module handler service or Drupal::translation() will return
  the string translation service. If there is no dedicated method for
  the service you want to use, you can use the Drupal::service() method
  to retrieve any defined service.


In which cases isn't there any dedicated method? How do I easily list all the retrievable services?
\Drupal::service('config.factory') and \Drupal::configFactory() are equivalent; the second is just shorter.

There are many, many services provided by core, and only a few of them have a dedicated method. You can get a list of core services on the core.services.yml page. Note that this is not all services that core offers, for example, there are more services in user.services.yml.

Also note that when working with classes, it's better to use dependency injection rather than calling static methods. Static methods should be called in procedural code (in D8, this basically means hooks, or API functions). 

This is a slideshow I used when doing a presentation on dependency injection at Drupal Camp Tokyo this month.