First and foremost, very few words in English are "perfectly" interchangeable.
NOAD says:
still (adv.) up to and including the present or the time mentioned
yet (adv.) up until the present or an unspecified or implied time
I hadn't thought much about this before, but using the word yet suggests a glimpse into the future:
I can't speak English yet – but I won't quit trying until I do.
while using the word still suggests a glimpse the past:
I still can't speak English – even though I've been trying for 10 years!
I'll try this again; the quotes here are in italics, what follows in [brackets] is what I might infer from the speaker's choice of words:
The bus hasn't come yet [but I expect it will come soon].
The bus still hasn't come [I've been waiting such a long time!]
I think you can even combine both words to express exasperation:
We've been potty training Dora for six months now, but she still hasn't got it yet!
That wording indicates it's been a long time, but there's still hope the desired result will happen eventually. Similarly, going back to your original examples, one could say:
I still can't speak English yet!
By the way, this answer hasn't even mentioned the use of these words to mean "even", as in:
We'll have even more snow tomorrow.
We'll have yet more snow tomorrow.
We'll have still more snow tomorrow.
That's another context entirely.
This sense of can is what linguists call a negative polarity item (NPI). You're already aware that can't can be used to mean "is not possible", and you clearly have little difficulty accepting that can can be used to mean "is possible" when the context effectively negates it ("I don't think that …"). So the tricky part is just recognizing that in English, negative polarity items are also licensed by (i.e., allowed to occur in the context of) questions.
Another negative polarity item is any; as you can see from these examples, they have similar distributions:
- Direct negation:
- 1 isn't greater than any other positive integers.
- 2 can't be greater than 3.
- Negation in a matrix (containing) clause:
- I don't think 1 is greater than any other positive integers.
- I don't think that 2 can be greater than 3.
- A question:
- Is 1 greater than any other positive integers?
- Can 2 be greater than 3?
- Use after only:
- Only 1 is greater than any other positive integers. [This is false, of course, but the statement is grammatical.]
- Only 2 can be greater than 3. [Ditto.]
Note that not all NPIs are licensed by the exact same contexts: some require more thoroughly negative contexts than others. Also, a word can be an NPI in one dialect, or in one register, without being an NPI in a different dialect or register. So this is a rough observation, rather than an firm guarantee of identical behavior. But it's a good first approximation.
Best Answer
Edit: You would not say "Are you on for lunch?" Normally it's a reference to something you plan to do together, e.g.
Otherwise, fred2's answer is good, but I disagree that the expressions are interchangeable. In the context of your text to your friend, the expressions have a different nuance.
"On for X" confirms a previously agreed appointment. Asking someone if they are still "on" for that appointment suggests they might have a schedule conflict. It could also be a gentle reminder if you believe they might have forgotten.
"Up for X" confirms someone's desire, ability, or (in some cases) courage. Asking someone if they are still "up" for it suggests that you think they might have had second thoughts, or are reminding them that they shouldn't back out.
So, you might, for example use "up for lunch" if your friend hasn't been feeling well and you want to give them the chance to cancel, or something else that confirms their willingness.
Edit 2: J.R. brings up a good point. The reason why you would not ask "Are you on for X?" is because it suggests that you (the person sending the text) are not included. In a different context, it would be fine to say something like:
with the assumption that you won't be attending. In a similar way, you could talk about a third party:
which suggests that you are not part of the team doing the demo, and possibly (depending on context) that you aren't going to be watching the demo.
So when you text a friend about a lunch plans, use "Are we (still) on for lunch?"