Generally speaking, a GP will issue a prescription for as long as is safe or appropriate. This is usually until a review needs to take place (check bloods/BP etc). If your prescription has expired, it generally means you need to be reviewed.
Just because a prescription CAN be issued for 12 months, it does not mean it SHOULD be issued for 12 months.
I would find it incredibly hard to believe that any surgery has a policy to issue prescriptions for 3 months to generate income. GPs are far too busy to engage in this. Most are turning away 20-30 patients per day.
I think far more likely is that when a prescription is requested, the GP checks the file and makes a clinical decision how long it is safe or appropriate to issue a prescription (ie to tide a patient over until a review or bloods can take place or some other period of time) This is work for which the GP is entitled to charge a fee.
Separately, it is not hugely relevant to a GP if they have seen a cardiologist or specialist previously who issued a prescription. Legally speaking, when a GP signs a prescription, they are then 100% responsible for that and need to satisfy themselves that all of the appropriate checks have taken place. A patient could also separately seek a repeat prescription for their cardiology medications directly from their cardiologist if they have an issue with the GP.