Drupal Database User 1 Permissions From the community documentation, create database permissions, the superuser/1 should have these permissions:

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES, CREATE TEMPORARY TABLES

There is comment here about install.mysqt.txt that the docs may be incomplete or ambiguous. Also, my Cpanel configruation shows additional permission options that I am unfamiliar with as does the GUI program I am using for MySQL. 

My question is, are there situations where modules for things like services, SOAP, REST, SPARQL, SSL, or other APIs and connecting technologies need to use the additional database permissions?
Short answer: yes.

Long(er) answer:
There are definitely modules that would make use of those MySQL permissions.  Not to mention administrative functions like installing new modules, doing updates, etc. 

'grant all' for your Drupal database user is the easiest/best way to do this.  However, once a site is up and running,  I would imagine that you could remove a LOT of those permissions.