If you look at the scripts generated by DBCA, you'll see the command that puts the spfile on a diskgroup. You will also see that the command that registers the database in the OCR specifies where the spfile is.
You should use similar commands when you create your database manually.
1. When is spfile created on diskgroup?
DBCA places the SPFILE in an Oracle ASM disk group, and also causes this stub PFILE to be created.
2. When is spfile on diskgroup considered as default spfile which database uses for startup?
When Oracle ASM is present SPFILE is searched in the same disk group as the datafiles
3. When and how oracle decides spfile on which Disk Group is to be used for startup more than 1 spfiles are present?
It uses SPFILE in the disk group as the datafiles. But its path must be present in stub PFILE
4. If there are more than 1 diskgroups and all these have spfiles for the database, then how will Oracle decide which spfile to pick?
It uses disk group as the datafiles
5. What is the default location of spfile on diskgroup? As we have $ORACLE_HOME/dbs location in case of Linux ?
Its on disk group.
Have you ever read so far about Oracle Restart, grid infra, crs.