No, if you want visits, then make your initial events 'all visits' and qualifying criteria : diagnosis of asthma during visit, all days before all days after'. You can also 'nest' that diagosis with the visit criteria, but that's more advanced usage. You can get by via any visits, and then add qualifying crteria that visit must have a asthma diagnosis during the visit. The cohort events will be visit dates, not diagnosis dates, which I think is what you want.
Yes, that's right: if you don't specify an exit, then the person would have each visit identified 'squashed' into one long episode starting with the earliest qualifying visit to the end of their observation period. If you want to treat the visits as the 'episodes' then add a 'fixed date exit strategy' to your cohort definition: exit on the event (visit) end date + 0 days. Then each sub-episode will be the visit_start -> visit_end. On the other hand, if you want to count distinct visits, you can set the exit strategy as start_date + 1 day. and then visits that might overlap should be counted (because you're making the episode duration 1 day). However, if you have multiple visits on the same day, they will get squashed so you can't rely on the number of episodes = number of visits.
The use-case you are stepping into is more 'cohort characterization' than cohort definition. when you say 'I want to know the number of visits these people had', you're pre-supposing an existing cohort of people. You could design a cohort definition to be interpreted as 'the number of episodes = number of visits', but you're working outside the intended purpose of cohort defintion. Ie: population selection vs. population characterization.